Skip to main content
Workflows let you automate what happens when key events occur in telli. You build them visually on a canvas - pick a trigger, drag in action and condition blocks, connect them with lines. No code required. When your agent completes a call or a new contact is created, workflows can automatically send data to your CRM, update contact records, route hot leads to your team, or trigger any downstream automation you need.

Quick Start

1

Open Workflows

Click Workflows in the left sidebar of the telli dashboard
2

Click Create Workflow

Give it a descriptive name like “Send hot leads to Salesforce” (not “Workflow 1”)
3

Pick the trigger

Choose Call Ended (runs after agent calls finish) or Contact Created (runs when new contacts are added)
4

Add blocks

Click the + button on the canvas to add action and condition blocks. Connect blocks by dragging lines between them
5

Configure each block

Click any block to open its settings panel and fill in the required information
6

Publish the draft

Click Publish to lock in your current draft as the live version
7

Enable the workflow

Flip the Enabled switch ON (publishing alone does not make it run)
8

Test it manually

Open the Runs tab → click Run manually → pick a recent call → watch what happens
A workflow only runs automatically if it is BOTH published AND enabled. Always test manually before enabling.

Triggers

Call Ended fires automatically every time a selected agent finishes a phone call.
  • Each workflow is tied to ONE specific agent
  • Only fires for calls that actually completed (a real human picked up and the conversation finished)
  • Does NOT fire for voicemails, busy signals, or calls that errored out

Available Data

Every block can pull from the call that triggered the workflow, plus anything earlier blocks produced.
Data TypeWhat’s Available
Contact informationName, phone, email, and any custom contact properties you’ve set up
Call metadataDirection, duration, end reason, who hung up, time of day
Call outcomesThe structured outcomes your agent assigned (e.g. “Demo Booked”, “Not Interested”)
Collected dataAnything specific the agent gathered during the call (preferred date, budget, address, etc.)

ActionWhat it does
Call notification emailSends a call summary email to a specific team member or email address. Includes transcript, recording, outcomes, and collected data. Perfect for notifying sales reps or managers about important calls.
Send SMSSends a text message to the contact after the call. Use it for follow-ups, appointment confirmations, or sending resources mentioned during the conversation.
Schedule callAutomatically schedules a follow-up call with the contact. Sets the time, assigns an agent, and adds it to the dialer queue.
Update contactChanges information about the contact inside telli. Works with standard fields (name, phone, email) and your own custom contact properties.
HTTP requestSends data to any external endpoint as an HTTP request (also called “Webhook”). Use it to push data into Pipedrive, Slack, Zapier, Make, n8n, your data warehouse, or your own internal API.
HubSpotCreate recordCreates a brand new record in HubSpot (e.g. a Contact, Deal, Ticket, or any custom object). Requires HubSpot integration.
HubSpotUpdate recordUpdates an existing HubSpot record. Commonly used to move deals to new pipeline stages or update contact properties based on call outcomes.
SalesforceCreate recordCreates a brand new record in Salesforce (e.g. a Lead, Contact, Opportunity, or any custom object). Requires Salesforce integration.
SalesforceUpdate recordUpdates an existing Salesforce record. Commonly used to move opportunities to new pipeline stages based on call outcomes.

The CRM Updater (Most Common Pattern)

Push every call result into your CRM:
[Call Ended: My Sales Agent]

[HubSpot: Create/Update record with call data]
Use the native HubSpot or Salesforce blocks for easier setup. For other CRMs, use the HTTP request block to send data to their API endpoints.

Hot Lead Routing

Only update Salesforce when the call actually went well:
[Call Ended: My Sales Agent]

[If/Else: Did call outcome = "Demo Booked"?]
   ↓ YES                              ↓ NO
[Salesforce: Update Opportunity      [Update contact:
 → Stage = "Demo Scheduled"]          Mark as "Not Ready"]

[HTTP request: Notify #sales-wins on Slack]

Multi-Path Outcome Handler

Different actions for different call outcomes:
[Call Ended: My Support Agent]

[Switch: What was the outcome?]
   ↓                ↓                    ↓
"Issue Resolved"   "Needs Engineer"     "Angry Customer"
   ↓                ↓                    ↓
[Update contact    [Salesforce: Create   [HTTP request: Page
 → Status: Done]    Engineering Ticket]   on-call manager]

Stop Calling People Who Said No

Respect opt-outs automatically:
[Call Ended: Outbound Agent]

[If/Else: outcome = "Do Not Contact"?]
   ↓ YES
[Update contact: set "Status" to suppressed]

Auto-Sync New Contacts to CRM

Push every new contact to your external system:
[Contact Created]

[HubSpot/Salesforce: Create record with contact data]
For HubSpot and Salesforce, use the native integration blocks. For other systems like Pipedrive, use the HTTP request block.

Send Follow-Up SMS After Calls

Automatically text customers after the conversation:
[Call Ended: Support Agent]

[If/Else: outcome = "Issue Resolved"?]
   ↓ YES
[Send SMS: "Thanks for calling! Your ticket #{{ticket_number}} is resolved."]

Notify Manager About Hot Leads

Alert team members when important calls happen:
[Call Ended: Sales Agent]

[If/Else: outcome = "Demo Booked"?]
   ↓ YES
[Call notification email → Send summary to [email protected]]