Edit Client Task¶
Overview¶
The Edit Client Task updates existing contact records in your BaseCloud CRM. It's essential for keeping contact data current, managing tags, updating custom fields, and tracking contact interactions.
When to use this task:
- Update contact information from form submissions
- Add or remove tags based on behavior
- Log activity in contact notes
- Update custom field values
- Change contact status or assignments
- Increment counters or scores
- Merge new data with existing records
Key Features:
- Update any contact field
- Add/remove tags individually
- Append to contact notes
- Conditional updates (only update if empty)
- Bulk field updates
- Custom field management
- Status and assignment changes
[SCREENSHOT NEEDED: Edit Client task configuration panel showing field update options]
Quick Start¶
- Add Edit Client task to workflow
- Select contact to edit: Usually
{{task_15001_contact_id}} - Choose fields to update
- Enter new values or variables
- Select update strategy (always/if empty/append)
- Save and test
Simple Example:
Contact ID: {{task_15001_contact_id}}
Add Tags: Website Lead, 2024
Update Field: custom_last_contact_date = {{task_48001_current_date}}
Contact Selection¶
By Contact ID (Most Common)¶
Use contact ID from previous task:
Sources of contact IDs: - Match to Client task: {{task_15001_contact_id}} - CRM Trigger: {{task_47001_contact_id}} - Get Contact task: {{task_28001_contact_id}} - Webhook In: {{task_46001_contact_id}}
By Email Address¶
Search and update by email:
Note: Creates contact if not found (use Match to Client first for better control).
By Phone Number¶
Search and update by phone:
Standard Field Updates¶
Basic Information¶
First Name:
Last Name:
Email:
Phone:
Company:
Update Strategies¶
Always Update: - Overwrites existing value - Use for: Latest information, corrected data
Update if Empty: - Only updates if field is currently empty - Use for: Filling gaps, preserving existing data
Append: - Adds to existing value (for notes/text fields) - Use for: Activity logs, notes
Address Fields¶
Street Address: {{task_55001_address}}
City: {{task_55001_city}}
State/Province: {{task_55001_state}}
Postal Code: {{task_55001_postal_code}}
Country: {{task_55001_country}}
Status and Assignment¶
Contact Status:
Common statuses: - Lead - Prospect - Customer - Inactive - Partner
Assigned To:
Assign to specific user:
Tag Management¶
Add Tags¶
Add one or more tags to contact:
Best practices: - Comma-separated list - Can include variables - Duplicates are ignored - Case-sensitive
Examples:
Add Tags: VIP
Add Tags: Active, Engaged, 2024
Add Tags: {{task_47001_event_type}}, {{task_48001_month}}
Remove Tags¶
Remove specific tags from contact:
Use cases: - Status transitions: Remove "Lead", add "Customer" - Campaign completion: Remove "In Campaign" - Unsubscribes: Remove "Email List"
Replace All Tags¶
Clear existing tags and set new ones:
Warning: Removes ALL existing tags first.
Use case: Complete status reset.
Conditional Tag Management¶
Custom Fields¶
Update Custom Fields¶
Any custom field you've created in CRM:
custom_lead_source: {{task_55001_utm_source}}
custom_lead_score: 75
custom_signup_date: {{task_48001_current_date}}
custom_last_interaction: {{task_48001_current_datetime}}
Field naming: - Prefix with custom_ - Use lowercase - Underscores for spaces - Must match exact field name in CRM
Increment Numeric Fields¶
Increase counter fields:
custom_form_submissions: +1
custom_total_orders: +{{task_43001_order_count}}
custom_lifetime_value: +{{task_43001_order_amount}}
Syntax: - +1 - Add 1 - +5 - Add 5 - +{{variable}} - Add dynamic amount - -1 - Subtract 1
Date/Time Fields¶
custom_last_purchase: {{task_48001_current_date}}
custom_trial_end_date: {{task_26001_formatted_date}}
custom_last_login: {{task_48001_current_datetime}}
Formats: - Date: 2024-02-08 - DateTime: 2024-02-08 14:30:00 - Relative: Use Date Formatter task first
Text Fields¶
custom_notes: Call requested callback on {{task_48001_current_date}}
custom_preference: {{task_55001_newsletter_preference}}
custom_source_details: {{task_46001_utm_campaign}} - {{task_46001_utm_medium}}
Contact Notes¶
Append to Notes¶
Add activity log entry:
Best practices: - Include timestamp - Clear description - Add separator for readability - Keep concise
Template:
Replace Notes¶
Caution: Overwrites all existing notes.
Rare use case: Typically use "Append" instead.
Real-World Examples¶
Example 1: Form Submission Update¶
Workflow: 1. Website Form 2. Match to Client 3. Edit Client
Configuration:
Contact ID: {{task_15001_contact_id}}
Update Fields:
- Phone: {{task_55001_phone}} (Update if Empty)
- Company: {{task_55001_company}} (Always Update)
- custom_last_form_date: {{task_48001_current_date}}
- custom_form_count: +1
Add Tags: Form Submission 2024, {{task_55001_form_name}}
Append to Notes:
{{task_48001_current_datetime}} - Form submitted
Topic: {{task_55001_inquiry_topic}}
Message: {{task_55001_message}}
---
Example 2: Lead Scoring Update¶
Workflow: 1. CRM Trigger - Contact updated 2. Code Task - Calculate lead score 3. Edit Client - Update score 4. If Task - Check if hot lead 5. Edit Client - Add hot lead tag if qualified
First Edit Client:
Contact ID: {{task_47001_contact_id}}
custom_lead_score: {{task_42001_calculated_score}}
custom_last_scored: {{task_48001_current_datetime}}
Second Edit Client (if score > 80):
Contact ID: {{task_47001_contact_id}}
Add Tags: Hot Lead
Status: Qualified
Assigned To: {{task_30001_sales_rep_id}}
Example 3: Call Logging¶
Workflow: 1. Call Connect Trigger 2. Match to Client 3. Edit Client
Configuration:
Contact ID: {{task_15001_contact_id}}
Update Fields:
- custom_last_call_date: {{task_48001_current_date}}
- custom_call_count: +1
- custom_last_call_duration: {{task_50001_duration_seconds}}
Add Tags: Called {{task_48001_current_date}}
Append to Notes:
{{task_48001_current_datetime}} - Inbound call
Duration: {{task_50001_duration_minutes}} minutes
Caller Number: {{task_50001_caller_number}}
Call Status: {{task_50001_call_status}}
---
Example 4: Purchase Tracking¶
Workflow: 1. Webhook In - E-commerce purchase 2. Match to Client 3. Edit Client
Configuration:
Contact ID: {{task_15001_contact_id}}
Update Fields:
- custom_last_purchase_date: {{task_48001_current_date}}
- custom_total_orders: +1
- custom_lifetime_value: +{{task_46001_order_amount}}
- custom_last_product: {{task_46001_product_name}}
Remove Tags: Lead, Prospect
Add Tags: Customer, Purchased 2024
Status: Customer
Append to Notes:
{{task_48001_current_datetime}} - Purchase completed
Order ID: {{task_46001_order_id}}
Amount: R{{task_46001_order_amount}}
Product: {{task_46001_product_name}}
---
Example 5: Status Progression¶
Workflow: 1. Timer Trigger - Daily at 8 AM 2. MySQL Query - Get leads with engagement > 5 3. Loop - Process each lead 4. Edit Client - Progress lead status
Configuration:
Contact ID: {{task_29001_contact_id}}
Update Fields:
- Status: Qualified Lead
- custom_qualified_date: {{task_48001_current_date}}
- custom_engagement_score: {{task_29001_engagement_score}}
Remove Tags: Cold Lead, Unqualified
Add Tags: Qualified, Ready for Sales
Assigned To: {{task_30001_next_available_rep}}
Append to Notes:
{{task_48001_current_datetime}} - Auto-qualified
Engagement Score: {{task_29001_engagement_score}}
Qualification Criteria Met: Yes
---
Advanced Techniques¶
Conditional Field Updates¶
Use If tasks to control updates:
1. If Task: Check {{task_15001_status}} = "Lead"
2. Edit Client (True path): Update lead-specific fields
3. Edit Client (False path): Update customer-specific fields
Bulk Updates with Loop¶
1. MySQL Query: Get all contacts needing update
2. Loop: For each contact
3. Edit Client: Update individual contact
Merge Data Strategy¶
Philosophy: Preserve good data, fill gaps, append notes.
Fields to Always Update:
- Phone (latest is best)
- Address (keep current)
- custom_last_interaction (always latest)
Fields to Update if Empty:
- First Name (keep if exists)
- Last Name (keep if exists)
- Company (keep original)
Fields to Append:
- Notes (never overwrite)
Field Calculations¶
Use Code task before Edit Client:
1. Code Task: Calculate lifetime_value
return {
ltv: parseFloat(orders) * parseFloat(avg_order)
};
2. Edit Client: Update custom_lifetime_value with {{task_42001_ltv}}
Output Fields¶
| Field | Description | Example Value |
|---|---|---|
task_[ID]_contact_id | ID of updated contact | 12345 |
task_[ID]_success | Update successful | true / false |
task_[ID]_fields_updated | Number of fields changed | 5 |
task_[ID]_tags_added | Tags added | VIP, Customer |
task_[ID]_tags_removed | Tags removed | Lead |
task_[ID]_error_message | Error if failed | Contact not found |
Usage:
Best Practices¶
Data Quality¶
- Validate before updating - Use If tasks to check data quality
- Normalize formats - Use Formatter tasks for consistency
- Preserve good data - Use "Update if Empty" strategically
- Don't overwrite unknowns - Empty submission field ≠ delete existing
Tag Management¶
- Consistent naming - "VIP Customer" not "vip" or "VIP CUSTOMER"
- Date-stamp campaigns - "Email Campaign 2024-02" not "Email Campaign"
- Remove old tags - Clean up status tags when status changes
- Document tag meanings - Keep internal wiki of tag purposes
Performance¶
- Batch updates - Use Loop task efficiently
- Only update changed fields - Don't update everything every time
- Index custom fields - Frequently queried fields should be indexed
- Avoid circular triggers - Don't trigger CRM Trigger that triggers Edit Client that triggers CRM Trigger...
Notes Management¶
- Always append - Never overwrite existing notes
- Include timestamps - Use
{{current_datetime}} - Use separators -
---or===between entries - Keep concise - Notes aren't storage, use custom fields for data
Troubleshooting¶
Contact Not Found¶
Error: Contact not found: ID 12345
Causes: 1. Invalid contact ID 2. Contact deleted 3. Variable empty
Solution:
Fields Not Updating¶
Check:
- Field name exact -
custom_lead_scorenotlead_score - Update strategy - "Update if Empty" won't overwrite
- Permissions - API user has edit access?
- Data type - Number field receiving text?
Debug: View execution history: - Check "Fields Updated" count - View error messages - Verify contact ID used
Tags Not Adding¶
Common issues:
- Case sensitivity - "VIP" ≠ "vip" (creates two tags)
- Extra spaces - "VIP " ≠ "VIP"
- Already exists - Adding existing tag (expected, not error)
- Comma in tag name - Don't use commas in individual tag names
Increment Not Working¶
Ensure:
✓ Correct: custom_count: +1
✗ Wrong: custom_count: 1 (replaces with 1, doesn't add)
✓ Correct: custom_value: +{{task_x_amount}}
✗ Wrong: custom_value: {{task_x_amount}} (replaces)
Circular Trigger Loops¶
Problem: Edit Client triggers CRM Trigger which runs workflow that edits client again...
Prevention: 1. CRM Trigger: Filter "triggered_by ≠ system" 2. Specific field triggers: Only trigger on human-changed fields 3. Delay between updates: Add time-based throttling
Frequently Asked Questions¶
Can I update multiple contacts at once?¶
Not in one task. Use Loop task:
1. MySQL Query: Get contacts to update
2. Loop: For each contact
3. Edit Client: Update individual contact
What if I don't know the contact ID?¶
Use Match to Client first:
How do I clear a field value?¶
Set field to empty:
(Leave value blank)Can I update based on current value?¶
Yes, for increments:
For other logic, use Get Contact → Code → Edit:
1. Get Contact: Retrieve current value
2. Code Task: Calculate new value
3. Edit Client: Update with calculated value
Should I use Edit Client or New Client?¶
Edit Client: - Updating existing contact - After Match to Client
New Client: - Creating new contact - When you KNOW it doesn't exist
Best practice: Use Match to Client + Edit Client (safer, prevents duplicates).
How do I update custom fields that don't exist yet?¶
Create the custom field in CRM first: 1. Go to CRM Settings → Custom Fields 2. Add field with exact name 3. Use in Edit Client task
Can I conditionally add tags?¶
Yes, use If task:
1. If: Check condition
2. Edit Client (True): Add specific tags
3. Edit Client (False): Add different tags
Related Tasks¶
- Match to Client - Find contact before editing
- Get Contact - Retrieve contact data
- New Client - Create new contacts
- If Task - Conditional updates
- Loop Task - Bulk updates
- Code Task - Calculate values before updating