Integration
Salesforce voice AI integration
The Salesforce integration connects your AI voice and chat agents to Salesforce, so they can create a crm lead on a live call. It's a crm connector that runs as a tool the agent calls mid-conversation — you connect with oauth, attach it to an agent, and it acts in real time without a human in the loop.
Last updated 2026-09-15
What your agent can do with Salesforce
Create a lead in Salesforce for the caller. Use when the caller is a sales prospect.
Inputs
| Field | Type | Description |
|---|---|---|
| company* | string | Company name (Salesforce requires it — use the caller's name if unknown) |
| description | string | What the lead wants |
| string | Email, if given | |
| first_name | string | First name |
| last_name* | string | Lead last name (Salesforce requires it) |
| phone | string | Caller phone |
Read the Salesforce Lead list, a page at a time. For importing a call list.
Inputs
| Field | Type | Description |
|---|---|---|
| cursor | string | nextRecordsUrl from the previous call |
| limit | integer | Leads per page (max 2000) |
Update many Salesforce leads in one call — the campaign write-back path.
Inputs
| Field | Type | Description |
|---|---|---|
| records* | array | [{attributes, id, …fields}] — up to 200 |
Log every call as a Salesforce Task (an Activity). Map at least Subject. Useful fields: Description, ActivityDate, Status, CallType, CallDurationInSeconds, WhoId (the Lead or Contact it belongs to).
Inputs
| Field | Type | Description |
|---|---|---|
| records* | array | one entry per call, each a Task |
Find an existing Salesforce contact by phone number. Use to recognise a caller and to get the contact ID that notes, tasks and cases need. If more than one contact comes back, do not assume which person is calling — ask.
Inputs
| Field | Type | Description |
|---|---|---|
| phone* | string | Caller phone. Digits only are used, so any format works. |
Fetch one Salesforce contact by its ID.
Inputs
| Field | Type | Description |
|---|---|---|
| contact_id* | string | The Salesforce contact ID (15 or 18 characters) |
Create a Salesforce contact for the caller. ALWAYS supply a last name — Salesforce refuses to create a contact without one.
Inputs
| Field | Type | Description |
|---|---|---|
| string | Email, if given | |
| firstname | string | First name |
| lastname | string | Last name. Salesforce REQUIRES this — if the caller gives only one name, use it here. |
| phone* | string | Phone in full international form |
Update fields on an existing Salesforce contact. Only the fields you supply are changed. Supply at least one field besides the ID — check hasErrors is false before telling the caller it worked.
Inputs
| Field | Type | Description |
|---|---|---|
| contact_id* | string | The Salesforce contact ID |
| string | ||
| firstname | string | First name |
| lastname | string | Last name |
| phone | string | Phone in full international form |
Fetch one Salesforce lead by its ID. IsConverted tells you whether it has already become a contact — if so, work from ConvertedContactId instead.
Inputs
| Field | Type | Description |
|---|---|---|
| lead_id* | string | The Salesforce lead ID |
Update fields on an existing Salesforce lead — including moving its Status. Only the fields you supply are changed. Check hasErrors is false before telling the caller it worked.
Inputs
| Field | Type | Description |
|---|---|---|
| company | string | Company name |
| string | ||
| firstname | string | First name |
| lastname | string | Last name |
| lead_id* | string | The Salesforce lead ID |
| phone | string | Phone in full international form |
| status | string | Lead status, exactly as the business named it, e.g. Working or Qualified |
Fetch one Salesforce account (the company a contact belongs to) by its ID.
Inputs
| Field | Type | Description |
|---|---|---|
| account_id* | string | The Salesforce account ID — a contact's AccountId |
Update fields on an existing Salesforce account. Only the fields you supply are changed. Check hasErrors is false before telling the caller it worked.
Inputs
| Field | Type | Description |
|---|---|---|
| account_id* | string | The Salesforce account ID |
| billing_city | string | Billing city |
| billing_country | string | Billing country |
| billing_state | string | Billing state or region |
| industry | string | Industry, exactly as the business named it |
| name | string | Account (company) name |
| phone | string | Main phone number |
| website | string | Website |
List the open and recent opportunities on a Salesforce account. Get the account ID from a contact's AccountId first.
Inputs
| Field | Type | Description |
|---|---|---|
| account_id* | string | The Salesforce account ID — a contact's AccountId |
Fetch one Salesforce opportunity by its ID — its stage, value and close date.
Inputs
| Field | Type | Description |
|---|---|---|
| opportunity_id* | string | The Salesforce opportunity ID |
Fetch one Salesforce case (a support ticket) by its ID, so you can tell a caller its current status.
Inputs
| Field | Type | Description |
|---|---|---|
| case_id* | string | The Salesforce case ID |
Look up which member of staff a record belongs to, from an OwnerId. Use this to tell a caller who is handling their case — never read out an internal email address or direct mobile number.
Inputs
| Field | Type | Description |
|---|---|---|
| user_id* | string | A Salesforce user ID, usually a record's OwnerId. Starts with 005. |
Create a follow-up task against a Salesforce contact. If the caller did not name a due date, use tomorrow.
Inputs
| Field | Type | Description |
|---|---|---|
| contact_id* | string | The Salesforce contact ID |
| description | string | Any detail the person doing the task will need |
| due_date* | string | Due date as YYYY-MM-DD, e.g. 2026-09-10 |
| subject* | string | Short task title, e.g. "Call back about the quote" |
Write a note onto a Salesforce contact — what the caller asked for, what was agreed. Keep it to a short paragraph.
Inputs
| Field | Type | Description |
|---|---|---|
| body* | string | The note text |
| contact_id* | string | The Salesforce contact ID |
| title | string | A short heading for the note. ALWAYS supply one — Salesforce refuses to save a note without a title. |
Fetch one record from the custom Salesforce object this tool is pointed at, by its ID.
Inputs
| Field | Type | Description |
|---|---|---|
| record_id* | string | The Salesforce record ID |
Update one record of the custom Salesforce object this tool is pointed at. Supply the fields as an object whose keys are the exact Salesforce field API names, e.g. {"Status__c": "Renewed"}.
Inputs
| Field | Type | Description |
|---|---|---|
| fields* | object | The fields to change, keyed by their exact Salesforce API name, e.g. {"Status__c":"Renewed","Renewal_Date__c":"2026-04-01"} |
| record_id* | string | The Salesforce record ID to update |
What you'll need to connect Salesforce
Connect with OAuth. In Telenow, open Integrations → Salesforce and provide:
- Instance URL — Your Salesforce My Domain URL — Setup → My Domain.
Agent templates that use Salesforce
Other CRM integrations
Frequently asked questions
What can an AI voice agent do with Salesforce?+
During a live call or chat, a Telenow agent can create a crm lead, crm.list_leads, crm.update_leads, crm.log_call, look up a contact by phone, get a contact by id, create a crm contact, update a contact, get a lead by id, update a lead, get an account by id, update an account, list an account's opportunities, get an opportunity by id, get a case by id, get a user by id, create a task on a contact, add a note to a contact, get a custom object record, and update a custom object record — each runs as a tool the agent calls mid-conversation, so it acts on Salesforce in real time without a human.
How do you connect Salesforce to Telenow?+
In Telenow, open Integrations, pick Salesforce, and you connect Salesforce once with OAuth — no API keys to copy. Then add its crm tool to your agent (or install a template that already includes it) and you're live.
Which AI agent templates use Salesforce?+
Solar & home-improvement lead, Outbound SDR with objection handling, Loan eligibility pre-screen, EdTech admissions counselor, Car test-drive booking, Home-services quote intake, Financial advisor booking, Travel enquiry & booking, Inbound sales concierge, Order & delivery status, Billing dispute intake, Subscription cancel & retain, B2B invoice follow-up, Insurance policy verification, Return & refund intake, and SaaS demo scheduler all use Salesforce. You can install any of them and connect your Salesforce account in a couple of clicks.
Does Salesforce work on phone calls and WhatsApp?+
Yes. Telenow agents run on phone, web, chat and WhatsApp, and Salesforce works the same across every channel — the agent calls it whenever the conversation needs it.
How much does the Salesforce integration cost?+
Connecting Salesforce is included — you only pay Telenow's transparent per-minute and per-component usage, and new accounts get free signup credit to try it.
Connect Salesforce to your AI voice agent
Sign up free and get $1.00 in credit — no card required. Connect your number, pick a template, and go live in minutes.