Skip to content

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

  1. Add Edit Client task to workflow
  2. Select contact to edit: Usually {{task_15001_contact_id}}
  3. Choose fields to update
  4. Enter new values or variables
  5. Select update strategy (always/if empty/append)
  6. 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:

Contact ID: {{task_15001_contact_id}}

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:

Find Contact By: Email
Email: {{task_55001_email}}

Note: Creates contact if not found (use Match to Client first for better control).

By Phone Number

Search and update by phone:

Find Contact By: Phone
Phone: {{task_50001_caller_number}}

Standard Field Updates

Basic Information

First Name:

First Name: {{task_55001_first_name}}
Update Strategy: Update if Empty

Last Name:

Last Name: {{task_55001_last_name}}
Update Strategy: Always Update

Email:

Email: {{task_55001_email}}
Update Strategy: Update if Empty

Phone:

Phone: {{task_55001_phone}}
Update Strategy: Always Update

Company:

Company: {{task_55001_company}}
Update Strategy: Always Update

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:

Status: Customer

Common statuses: - Lead - Prospect - Customer - Inactive - Partner

Assigned To:

Assigned To: {{task_30001_assigned_user_id}}

Assign to specific user:

Assigned To: user_12345

Tag Management

Add Tags

Add one or more tags to contact:

Add Tags: Website Lead, Form Submission, {{task_55001_product_interest}}

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:

Remove Tags: Lead, Prospect

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:

Replace Tags: Customer, Active, 2024

Warning: Removes ALL existing tags first.

Use case: Complete status reset.

Conditional Tag Management

If {{task_9001_result}} = true:
  Add Tags: Qualified Lead
Else:
  Add Tags: Needs Nurture

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:

Append to Notes: 
Form submitted on {{task_48001_current_date}}
Message: {{task_55001_message}}
---

Best practices: - Include timestamp - Clear description - Add separator for readability - Keep concise

Template:

{{task_48001_current_datetime}} - {{event_description}}
Details: {{relevant_data}}
---

Replace Notes

Caution: Overwrites all existing notes.

Notes: {{task_55001_new_note}}
Update Strategy: Always Update

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:

Check success: {{task_16001_success}}
Log changes: {{task_16001_fields_updated}} fields updated

Best Practices

Data Quality

  1. Validate before updating - Use If tasks to check data quality
  2. Normalize formats - Use Formatter tasks for consistency
  3. Preserve good data - Use "Update if Empty" strategically
  4. Don't overwrite unknowns - Empty submission field ≠ delete existing

Tag Management

  1. Consistent naming - "VIP Customer" not "vip" or "VIP CUSTOMER"
  2. Date-stamp campaigns - "Email Campaign 2024-02" not "Email Campaign"
  3. Remove old tags - Clean up status tags when status changes
  4. Document tag meanings - Keep internal wiki of tag purposes

Performance

  1. Batch updates - Use Loop task efficiently
  2. Only update changed fields - Don't update everything every time
  3. Index custom fields - Frequently queried fields should be indexed
  4. Avoid circular triggers - Don't trigger CRM Trigger that triggers Edit Client that triggers CRM Trigger...

Notes Management

  1. Always append - Never overwrite existing notes
  2. Include timestamps - Use {{current_datetime}}
  3. Use separators - --- or === between entries
  4. 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:

Add If Task before Edit Client:
Condition: {{task_15001_contact_id}} Is Not Empty

Fields Not Updating

Check:

  1. Field name exact - custom_lead_score not lead_score
  2. Update strategy - "Update if Empty" won't overwrite
  3. Permissions - API user has edit access?
  4. 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:

  1. Case sensitivity - "VIP" ≠ "vip" (creates two tags)
  2. Extra spaces - "VIP " ≠ "VIP"
  3. Already exists - Adding existing tag (expected, not error)
  4. 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:

1. Match to Client: Find by email/phone
2. Edit Client: Update using {{task_15_contact_id}}

How do I clear a field value?

Set field to empty:

custom_field_name: 
(Leave value blank)

Can I update based on current value?

Yes, for increments:

custom_count: +1

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


  • 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