Skip to content

CRM Trigger

Overview

The CRM Trigger automatically starts workflows when specific events occur in your BaseCloud CRM. This creates powerful automation based on contact behavior, data changes, and CRM activities without any manual intervention.

When to use this trigger:

  • Send welcome emails when new contacts are created
  • Notify team members when contact data changes
  • Trigger follow-ups based on contact status changes
  • Automate actions when custom field values change

Quick Start

Builder fields

The Field column is the label as it appears in the task builder; Key is the name the value is stored under and referenced by.

Field Key Type Default Notes
Trigger Type trigger_type select 1 Options: Client Created · Client Field Change · Client Field Button Click · Contact Field Change · Quote / Invoice Change · Workflow Note Change · Custom Table: Row Added · Custom Table: Cell Change · Custom Table: Cell Button Click
Target Field var_id select – Options: Client/Company Name · Client Status · Responsible Manager. Only shown when trigger_type is 1
Target Column var_id select – Only shown when trigger_type is 2
Invoice Event var_id select – Options: Quote/Invoice Created · Quote/Invoice Edited · Quote/Invoice Deleted · Quote/Invoice Marked as paid · Quote/Invoice Marked as unpaid. Only shown when trigger_type is 3
Target Contact Field var_id select – Only shown when trigger_type is 5
Target Table var_id select – Only shown when trigger_type is 6
Note Event var_id select – Options: Workflow Note Created · Workflow Note Marked as done. Only shown when trigger_type is 7
Button Field var_id select – Only shown when trigger_type is 8
Button Column var_id select – Only shown when trigger_type is 9
  1. Create a new workflow
  2. Add a CRM Trigger as the first task
  3. Select the trigger type, then what it watches (the field, column, event or table)
  4. Save and switch the workflow on
  5. The workflow runs automatically when the event occurs

The CRM Trigger task opened to its settings: the trigger banner, Trigger Type set to Client Field Change and Target Field set to Client Status

Trigger Types

Trigger type Starts the workflow when Then choose
Client Created a client is created — by hand, by a form or by another workflow –
Client Field Change the chosen client field changes (name, status, manager, address, billing address, or a custom field) the field
Client Field Button Click someone clicks a button custom field on a client the button field
Contact Field Change the chosen contact field changes the contact field
Quote / Invoice Change a quote or invoice is created, edited, deleted (voided), marked paid or marked unpaid the event
Workflow Note Change a workflow note is created or marked done the event
Custom Table: Row Added a row is added to the chosen custom table the table
Custom Table: Cell Change the chosen column changes in any row the column
Custom Table: Cell Button Click someone clicks a button column in a row the button column

The trigger fires on the change itself: there is no "equals" or "greater than" condition here. To act only on some values — a status changed to "Won" — follow the trigger with an If on its var_val.

Changing the trigger type clears the choice below it (the field, event or table), because a field picked for one type means nothing to another — pick it again.

Each type is something people do in the CRM. These pages show what that looks like on screen:

Trigger type Where it happens in the CRM
Client Created Add a client
Client Field Change Edit clients — including changing a status — and fill in custom fields
Client Field Button Click Button fields
Contact Field Change Edit a contact and contact custom fields
Quote / Invoice Change Make a quote or invoice, turn a quote into an invoice, mark an invoice paid or void it
Workflow Note Change Add a note and mark notes done
Custom Table: Row Added Add a row
Custom Table: Cell Change Change a value
Custom Table: Cell Button Click Work with table rows

The Custom Fields section of a client panel, with a count of 15, the pencil, Hide Empty, a search box and Add Field. The first fields are Property Type: Single-family home, Service Area: North Shore, Lead Source: Website Form, Maintenance Plan: None, Water Heater Age (yrs): 11 and Next Service Due: 2026-11-03

Custom fields are defined per tenant on the client record itself — the pencil edits the set, Add Field creates one (see Manage custom fields). You pick a field by its name in the task, but the task stores its ID, so renaming the field later doesn't break the workflow; deleting it does.

The custom table events watch tables and columns that are also set up on the client — see Custom tables in automations.

Settings, Client Statuses: eight statuses from New Lead to Lost, each with a handle to drag it by, its ID, a preview of its coloured badge, a colour swatch and an on/off switch, and Add Status

Statuses are defined per tenant in Settings → Client Statuses, so the list differs between accounts — a status that exists in one tenant may not exist in another. Each carries a numeric ID, and that ID is what a task reads and writes; the label is only what people see. Deactivating a status hides it from dropdowns without removing it from records that already hold it.

Outputs

The CRM Trigger outputs the change-log entry that fired it, joined to the client and the users involved. Reference fields as {{task_<ID>_<field>}}.

The change

Field Type Notes
id number The change-log entry's ID.
var_id string Which field changed — e.g. client_status, client_field_updated, contact_created.
var_val string The new value.
var_val_from string The previous value.
date_created string When the change happened, DD/MM/YYYY HH:mm.
custom_field_id number Set when the change was to a custom field.
table_id, row_id, column_id number Set for table-row changes.
wfn_id number Set for workflow-note changes.
inv_id number Set for quote/invoice changes.
channel_id, task_id number The workflow and task that fired.

The client

Field Type Notes
client_id number The client the change belongs to.
company_name string The client's name.
origin string The client's origin (first_contact).
owner_id number Account ID.
user_created number Who created the client.
contact_id number Set when the change concerns a contact.

Who made the change, and who owns the client

Field Type Notes
user_actioned number ID of the user who made the change.
user_actioned_name, user_actioned_surname string Their name.
user_actioned_email, user_actioned_number string Their contact details.
admin_responsible number ID of the client's responsible user.
admin_responsible_name, admin_responsible_surname string Their name.
admin_responsible_email, admin_responsible_number string Their contact details.

Resolved labels, on field-change triggers

Field Type Notes
status_changed_to string Status label, when var_id is client_status.
status_changed_from string The previous status label.
custom_field_changed_to string Readable new value, when a custom field changed. Falls back to the raw value if the field has since been deleted.
custom_field_changed_from string Readable previous value.

Always

Field Type Notes
run boolean Whether the task succeeded.
run_text string A human-readable account of what happened, including any reason it failed.

Real-World Examples

Welcome a newly created client

CRM Trigger  (client created)
  └─ Email   send the welcome message to {{task_47001_company_name}}

Act on a status change

CRM Trigger  (field change, client_status)
  └─ If Statement   {{task_47001_status_changed_to}} equals "Won"
      └─ BaseCloud Accounting   raise the invoice

status_changed_to and status_changed_from give you the readable labels, so you can branch on the change itself rather than on the raw ID.

Tell the new owner when a client is reassigned

CRM Trigger  (field change, admin_responsible)
  └─ Email   notify {{task_47001_admin_responsible_email}}

Keep another system in step

CRM Trigger  (Contact Field Change)
  └─ Webhook Out   post the change to the other system

Acting only on some changes

The trigger itself has no conditions. Put an If right after it and test the outputs — for example {{task_<ID>_status_changed_to}} exactly matches Won, or {{task_<ID>_var_val_from}} is empty (a field filled in for the first time).

Preventing Workflow Loops

A workflow that changes the very field its trigger watches starts itself again: Client Field Change on Status, then an Edit a Client that sets the status, runs again on its own change.

  • Watch a different field from the one the workflow writes.
  • Stop on a no-op. Edit a Client does not write — or fire triggers for — a value equal to what the client already holds, so a workflow that sets a status to the value it already has does not start itself again.
  • Check who made the change. user_actioned is the person who made it; a change made by a workflow is recorded against the automation user. An If on user_actioned can skip changes a workflow made.

Best Practices

✅ Do's

  • Be specific with triggers: Use filters to avoid unnecessary executions
  • Add If tasks for validation: Double-check conditions even if trigger has filters
  • Test thoroughly: Test with real CRM data before enabling
  • Add error notifications: Alert yourself when critical workflows fail
  • Document your workflows: Add clear descriptions of what each workflow does
  • Use tags for tracking: Add tags to show workflow has processed a contact
  • Monitor execution history: Check regularly that workflows are running correctly

❌ Don'ts

  • Don't create loops: Always check if your workflow updates trigger new events
  • Don't trigger on every update: Use specific field monitoring
  • Don't skip error handling: Add If tasks to handle missing data
  • Don't forget timezone issues: Be aware when using time-based conditions
  • Don't over-automate: Not every CRM change needs a workflow

Troubleshooting

Workflow Not Triggering

Possible Causes:

  • Workflow is disabled
  • Trigger conditions too restrictive
  • Event type doesn't match actual CRM action
  • CRM trigger not saved properly

Solutions:

  1. Check workflow toggle is ON
  2. Review trigger configuration and filters
  3. Test by manually performing the CRM action
  4. Check execution history for error messages

Workflow Triggering Too Often

Possible Causes:

  • Trigger conditions too broad
  • Multiple users editing same contacts
  • Workflow creating loop by updating contacts

Solutions:

  1. Add more specific filters
  2. Check if workflow updates trigger additional events
  3. Use "Changed Field" filters
  4. Add processing flag to prevent duplicates

Missing Contact Data

Possible Causes:

  • Custom field not populated yet
  • Contact still being created when workflow runs

Solutions:

  1. Add small delay (5-10 seconds) after trigger
  2. Use If tasks to check if required fields exist
  3. Handle missing data gracefully

Workflow Running Multiple Times

Cause: Multiple CRM updates in quick succession

Solution: each change is its own run, by design. To act once on a burst of changes, have the workflow set a field (for example "Synced at") and check it with an If before acting.

Advanced Patterns

Sequential Contact Updates

Update contact in stages with delays:

  1. CRM Trigger - Client Created
  2. Delay - Wait 1 day
  3. Email - Send day 1 email
  4. Delay - Wait 2 days
  5. Email - Send day 3 email
  6. Delay - Wait 4 days
  7. Email - Send day 7 email

Conditional Multi-Path Workflows

Route based on contact properties:

  1. CRM Trigger - Client Field Change (Industry)
  2. If Task - Check industry
  3. Technology → Tech sales flow
  4. Healthcare → Healthcare sales flow
  5. Other → General flow

Lead Scoring Automation

Automatically update lead scores:

  1. CRM Trigger - Contact Field Change
  2. Code Task - Calculate lead score based on actions
  3. Edit Client - Update lead_score field
  4. If Task - If score >= 80
  5. Email - Notify sales team

Frequently Asked Questions

Can I have multiple CRM Triggers in one workflow?

Yes — a workflow can have several triggers, each starting the tasks linked under it. One workflow per purpose is usually easier to follow.

What's the delay between CRM change and workflow execution?

Usually immediate (within seconds). Very complex workflows may take longer.

Can I trigger on custom field changes?

Yes — choose Client Field Change (or Contact Field Change) and pick the custom field.

Will this trigger if I bulk import contacts?

Yes — Client Created fires for each imported client. Switch the workflow off during a large import if it should not run for them. - Adding batch processing logic

Can I undo a workflow action?

No, workflows execute automatically and cannot be undone. Always test thoroughly before enabling.

How do I test without affecting real contacts?

  1. Create a test contact
  2. Use "Run Test" button if available
  3. Check execution history to see what would happen
  4. Use a test workflow (disabled for real contacts)

Can I trigger based on inactivity?

Not directly. Instead, use a Schedule Trigger to check for inactive contacts periodically:

  1. Timer Trigger - Daily
  2. Google Sheets - get_rows from a list of accounts to review
  3. Loop through results
  4. Send re-engagement email

What happens if the workflow fails?

The system logs the error in execution history. The CRM event still occurred, but the workflow didn't complete. Consider:

  • Adding error notification emails
  • Implementing retry logic
  • Monitoring execution history regularly

Can I prevent certain users from triggering workflows?

Yes, add an If task checking triggered_by:

Condition: {{task_47123_triggered_by}} is not "admin@yourcompany.com"

Next Steps: