Back to Documentation
CRM & Communication

Automation Builder

Overview



The Automation Builder lets you create trigger-based workflows that perform actions automatically, eliminating repetitive manual work. When a specific event happens—like a call ending, a disposition being submitted, or a new contact being created—your automation can instantly send an SMS, add a tag, book an appointment, create a contact, or modify contact information. A built-in conditions layer lets you add logic so that actions only fire when certain criteria are met, and webhook conditions let you integrate with external services.



---



The 4-Step Wizard



Creating an automation is a guided process with four steps. The wizard walks you through each step sequentially, and you can navigate back and forth to refine your settings before saving.



---



Step 1 — Basic Info



This step captures the foundational details of your automation.



| Field | Details |


|---|---|


| Automation Name (required) | A descriptive name that helps you identify the automation at a glance. Examples: "Send welcome SMS to new contacts," "Tag hot leads after disposition," "Book follow-up for interested callers." |


| Description textarea | An optional longer explanation of what the automation does and why it exists. This is helpful for team members who may need to understand or modify the automation later. |



Click Next to proceed to Step 2.



---



Step 2 — Trigger



The trigger defines when the automation runs. You select a trigger by clicking one of the clickable cards displayed on the screen. Each card represents a different event:



#### Call Start



Fires when an outbound or inbound call begins. Use this trigger to perform an action the moment a call connects—for example, sending a webhook to log call activity in an external system.



#### Call Answer



Fires when a call is answered by the recipient (outbound) or by the agent (inbound). This is different from Call Start because it only fires when the other party actually picks up, filtering out unanswered attempts.



#### Call End



Fires when a call is completed, regardless of outcome. Use this trigger to capture post-call actions like sending a follow-up SMS or booking a callback appointment.



#### Disposition Submit



Fires when an agent submits a disposition at the end of a call. This is one of the most powerful triggers because it provides access to disposition data (name, notes, ID) that you can use in conditions and actions. For example, you can send a specific SMS only when the disposition is "Interested."



#### Contact Created



Fires whenever a new contact is added to the system, whether manually by an agent, via CSV import, or automatically from a call disposition. Use this to send a welcome message, add a default tag, or trigger an external workflow.



#### Scheduled (Interval)



Fires on a recurring schedule rather than in response to a specific event. When you select this trigger, an Interval Configuration panel appears with the following options:



| Setting | Options |


|---|---|


| Frequency dropdown | Every Minute — Runs once per minute. Use sparingly and only for time-sensitive monitoring. |


| | Hourly — Runs once per hour. A Time picker appears to set the minute of the hour (e.g., :00, :15, :30, :45). |


| | Daily — Runs once per day. A Time picker appears to set the hour and minute. |


| | Weekly — Runs once per week. A Day of Week selector and Time picker appear so you can choose, for example, every Monday at 9:00 AM. |


| | Monthly — Runs once per month. A Day of Month selector and Time picker appear so you can choose, for example, the 1st of every month at 8:00 AM. |



Click Next to proceed to Step 3.



---



Step 3 — Conditions (Optional)



Conditions add logic to your automation. Without conditions, the automation fires every time the trigger occurs. With conditions, it only fires when specific criteria are met. This step is entirely optional—if you want the automation to run unconditionally, simply click Next to skip to Step 4.



#### Adding an If/Else Condition



Click the Add If/Else Condition button. A condition row appears with three fields:



##### Field dropdown



Select the data point you want to evaluate. Available fields include:



  • Disposition fields: Disposition ID, Disposition Name, Disposition Notes

  • Contact fields: Contact First Name, Contact Last Name, Contact Phone, Contact Email, Contact Company

  • Call fields: Call Duration


##### Operator dropdown



Choose how the field value should be compared:



| Operator | Meaning |


|---|---|


| Equals | The field value must exactly match the specified value. |


| Not Equals | The field value must NOT match the specified value. |


| Contains | The field value must include the specified text somewhere within it. |


| Is Empty | The field must have no value (blank or null). No value input needed. |


| Greater Than | The field value must be numerically greater than the specified value. Useful for Call Duration. |


| Less Than | The field value must be numerically less than the specified value. |



##### Value input with Variable Picker



Type a static value (e.g., "Interested," "120," "Medicare") or click the Variable Picker dropdown to insert a dynamic variable (described in detail below). For example, you could set a condition where Disposition Name Equals "Interested" to only fire the automation for that specific disposition.



You can add multiple conditions by clicking the Add If/Else Condition button again. Multiple conditions are evaluated together, allowing you to create precise targeting rules.



#### Adding a Webhook Condition



Click the Add Webhook button to add a condition that calls an external URL and uses the response to determine whether the automation should proceed.



| Field | Details |


|---|---|


| URL | The endpoint to call. You can use the Variable Picker to insert dynamic values into the URL (e.g., `https://example.com/check?phone={contact.phone}`). |


| Method | The HTTP method: GET, POST, PUT, or DELETE. Choose the method that matches your external service's requirements. |


| Variable Name | A name you assign to the webhook response value. This lets you reference the response in subsequent conditions or actions. |



Webhook conditions are powerful because they let your automation make decisions based on external data. For example, you could check a CRM for duplicate contacts before creating a new one, or verify a lead's eligibility before booking an appointment.



Click Next to proceed to Step 4.



---



Step 4 — Actions



Actions are what the automation does when the trigger fires and conditions are met. You can add one or more actions, and they execute in the order you define them.



Click any of the Add buttons to insert an action:



#### Send SMS



Send a text message automatically.



| Field | Details |


|---|---|


| To (phone number) | The recipient's phone number. Use the Variable Picker to insert `{contact.phone}` so the SMS is sent to the triggering contact automatically. |


| Message textarea | The text message content. Use the Variable Picker to personalize the message with variables like `{contact.first_name}`, `{disposition.name}`, `{call.agent_name}`, etc. Example: "Hi {contact.first_name}, thank you for your interest in {disposition.name}. We will follow up shortly!" |



#### Add Tag



Apply a tag to the contact associated with the triggering event.



| Field | Details |


|---|---|


| Select Tag dropdown | Choose from your existing tags. |


| Create New option | If the tag you need does not exist, click Create New to define a new tag name and color on the spot. |



#### Book Appointment



Automatically create a calendar event.



| Field | Details |


|---|---|


| Title | The event name. Supports the Variable Picker—e.g., "Follow-up with {contact.first_name} {contact.last_name}." |


| Days from now | How many days in the future the appointment should be scheduled (e.g., 1 for tomorrow, 3 for three days from now, 7 for next week). |


| Time | The time of day for the appointment. |


| Description | Optional details for the event. Supports the Variable Picker. |



#### Add Contact



Create a new contact record with information from the triggering event.



| Field | Details |


|---|---|


| First Name | The contact's first name. Use `{contact.first_name}` or type a static value. |


| Last Name | The contact's last name. Use `{contact.last_name}` or type a static value. |


| Phone | The contact's phone number. Use `{contact.phone}` or `{call.caller_id}`. |


| Email | The contact's email address. Use `{contact.email}` or type a static value. |



All four fields support the Variable Picker, so you can dynamically populate the contact with data from the trigger event.



#### Modify Contact



Update an existing contact's information.



| Field | Details |


|---|---|


| First Name | Update the contact's first name. Supports Variable Picker. |


| Last Name | Update the contact's last name. Supports Variable Picker. |


| Phone | Update the contact's phone number. Supports Variable Picker. |


| Email | Update the contact's email address. Supports Variable Picker. |



Use this action to enrich contact records automatically—for example, after a call ends, you could update the contact's company field based on information collected during the conversation.



---



Variable Picker



The Variable Picker is a dropdown available in condition values and action fields throughout Steps 3 and 4. It lets you insert dynamic placeholders that are replaced with real data when the automation executes. Variables are organized into three groups:



Call Variables



| Variable | Description |


|---|---|


| `{call.caller_id}` | The phone number of the caller (inbound) or the dialed number (outbound). |


| `{call.duration}` | The length of the call in seconds. |


| `{call.queue_name}` | The name of the call queue the call came through. |


| `{call.agent_name}` | The name of the agent who handled the call. |



Contact Variables



| Variable | Description |


|---|---|


| `{contact.id}` | The unique identifier of the contact in the system. |


| `{contact.first_name}` | The contact's first name. |


| `{contact.last_name}` | The contact's last name. |


| `{contact.phone}` | The contact's primary phone number. |


| `{contact.email}` | The contact's email address. |


| `{contact.company}` | The contact's company name. |



Disposition Variables



| Variable | Description |


|---|---|


| `{disposition.id}` | The unique identifier of the disposition. |


| `{disposition.name}` | The display name of the disposition (e.g., "Interested," "Not Home," "Do Not Call"). |


| `{disposition.notes}` | The notes the agent entered when submitting the disposition. |



Tip: You can combine multiple variables in a single field. For example, an SMS message could read: "Hi {contact.first_name}, your call with {call.agent_name} lasted {call.duration} seconds. Your disposition was: {disposition.name}."



---



Automations List Page



After creating automations, they appear on the Automations List page as individual cards. Each card displays:



  • Automation Name and description.

  • Active / Inactive Toggle — A switch that lets you enable or disable the automation without deleting it. Inactive automations do not fire, even if the trigger event occurs.

  • Trigger Badge — A label showing which trigger the automation uses (e.g., "Call End," "Disposition Submit," "Daily at 9:00 AM").

  • Scope Badges — Labels indicating the scope of the automation (e.g., which agency or agents it applies to).

  • Last Run Info — Shows when the automation last executed and whether it succeeded or failed.

  • Actions Menu — A dropdown or set of buttons with four options:

- Edit — Opens the 4-step wizard with the automation's current configuration pre-loaded.


- View Logs — Opens the Automation Logs page filtered to this automation.


- Duplicate — Creates a copy of the automation, which you can then modify. This saves time when building similar workflows.


- Delete — Permanently removes the automation after confirmation.



---



Automation Logs



The Automation Logs page provides a detailed record of every time an automation has executed. Use it to verify that automations are working correctly, troubleshoot failures, and monitor performance.



Each log entry displays:



| Column | Details |


|---|---|


| Timestamp | The date and time the automation executed. |


| Status Badge | One of three statuses: Success (all actions completed), Partial (some actions succeeded, others failed), or Failed (the automation encountered an error and no actions completed). |


| Actions Executed | The number of actions that completed successfully. |


| Actions Failed | The number of actions that encountered errors. |


| Execution Time | How long the automation took to run, measured in milliseconds (ms). |



Expandable Details



Click a log entry to expand it and see:



  • Trigger Data — The specific data that triggered the automation (e.g., the caller ID, contact name, disposition submitted).

  • Action Results — A breakdown of each action: what it did, whether it succeeded, and any error messages if it failed.

  • Error Messages — Detailed error descriptions that help you diagnose and fix problems.


Pagination



Logs are paginated for performance. Use the Previous and Next buttons at the bottom of the page to navigate through older entries.



---



Example Automations



Here are practical automation configurations you can build to see the power of the system in action:



Example 1: Send Follow-Up SMS After "Interested" Disposition



  • Trigger: Disposition Submit

  • Condition: Disposition Name Equals "Interested"

  • Action: Send SMS

- To: `{contact.phone}`


- Message: "Hi {contact.first_name}, thanks for speaking with {call.agent_name} today! We're excited about your interest. We'll be in touch soon with next steps."



This automation ensures every hot lead gets an immediate, personalized follow-up text the moment the agent finishes the call.



Example 2: Tag and Book Appointment for "Set Appointment" Disposition



  • Trigger: Disposition Submit

  • Condition: Disposition Name Equals "Set Appointment"

  • Actions:

1. Add Tag: "Appointment Set"


2. Book Appointment:


- Title: "Enrollment call with {contact.first_name} {contact.last_name}"


- Days from now: 1


- Time: 10:00 AM


- Description: "Follow-up enrollment discussion. Disposition notes: {disposition.notes}"



This two-action automation tags the contact for easy filtering and schedules a next-day appointment, all without the agent lifting a finger.



Example 3: Auto-Create Contact from Inbound Call



  • Trigger: Call End

  • Condition: Contact First Name Is Empty (i.e., no contact exists for this number)

  • Action: Add Contact

- First Name: "Unknown"


- Last Name: "Caller"


- Phone: `{call.caller_id}`


- Email: (left blank)



This catches every inbound call from a new number and ensures a contact record exists in the system for follow-up.



Example 4: Daily Summary Webhook



  • Trigger: Scheduled (Interval) — Daily at 6:00 PM

  • Condition: (none — runs unconditionally)

  • Action: Send SMS

- To: (supervisor's phone number)


- Message: "Daily automation report: All scheduled automations have completed. Check the Automation Logs for details."



This simple scheduled automation sends a nightly reminder to a supervisor to review the day's activity.



Example 5: Modify Contact After Long Call



  • Trigger: Call End

  • Condition: Call Duration Greater Than 300 (i.e., calls longer than 5 minutes)

  • Actions:

1. Add Tag: "Extended Call"


2. Modify Contact:


- (No field changes, but you could update a custom field or company name based on information gathered during the call.)



This flags contacts who had in-depth conversations, helping supervisors identify engaged leads for priority follow-up.



---



Tips & Best Practices



  • Start simple. Begin with a single trigger, one condition, and one action. Once you see it working reliably, add complexity.

  • Test with a safe action. When building a new automation, start with a low-risk action like Add Tag. Once you confirm the trigger and conditions work correctly, replace or supplement it with higher-impact actions like Send SMS or Book Appointment.

  • Name automations clearly. Use descriptive names that explain the trigger, condition, and action at a glance—e.g., "SMS → Interested leads after disposition" rather than "Automation 1."

  • Use the Duplicate feature. If you need several similar automations (e.g., different SMS messages for different dispositions), build one, then duplicate and modify the copy. This is faster than starting from scratch each time.

  • Monitor logs regularly. Check the Automation Logs at least weekly to catch failures early. A failing automation means missed follow-ups or incorrect data.

  • Deactivate instead of deleting. If you want to temporarily stop an automation, toggle it to Inactive rather than deleting it. You can reactivate it later without rebuilding.

  • Leverage the Variable Picker. Dynamic variables make your automations personal and context-aware. An SMS that says "Hi {contact.first_name}" is far more effective than a generic "Hi there."

  • Combine conditions for precision. Use multiple conditions to avoid false positives. For example, require both Disposition Name Equals "Interested" AND Call Duration Greater Than 60 to filter out accidental dispositions from very short calls.

  • Be mindful of Scheduled triggers. "Every Minute" is extremely frequent—only use it if you truly need near-real-time processing. For most use cases, Hourly or Daily is sufficient and puts less load on the system.

Last updated: February 24, 2026

Was this article helpful?

Can't find what you're looking for?

Submit a Support Ticket

Last updated: