Todos los insights
Artรญculos
How to Connect an AI Voice Agent to Salesforce: External Client App, Run As User and a Test Call in 10 Minutes
Connect an AI voice agent to Salesforce with an External Client App, a least-privilege Run As user and a scripted test call. No developer needed, about ten minutes.

By Yatheendra, Founder, Brilo AI
Short answer: To connect an AI voice agent to Salesforce, create an External Client App in Salesforce Setup with OAuth and the Client Credentials Flow turned on, set a dedicated integration user as its Run As user, and paste the Consumer Key, Consumer Secret and your My Domain URL into the voice agent. Then give that user only the permissions your agent's actions need and place a scripted test call. With Brilo it takes about ten minutes and a Salesforce admin, not a developer.
Getting the keys to work is the easy part. Most failed setups break somewhere else: an edition without API access, an agent running as someone's personal login, a missing field permission that only shows up when a real customer calls.
This guide covers those decisions. The click-by-click steps live in our docs at Connect Salesforce, and we link to them at each stage rather than repeat them.
Before you start: edition, plan and access
Two checks prevent most failed setups. Do them before you open Setup.
1. Your Salesforce edition. A voice agent reads and writes records through the Salesforce API, so your org needs API access. Enterprise, Unlimited, Performance and Developer editions include it. Professional Edition only has it with the paid API add-on, and Essentials and Starter have none. Brilo's docs confirm Enterprise and above work.
To check, go to Setup, then Company Information, and read the Organization Edition field.
2. Your Brilo plan. Salesforce connects through the Brilo App Store, which comes with the Pro plan ($149 a month) and above. Free and Starter don't include it. Salesforce is also switched on per workspace, so open the App Store and check it's listed. If it isn't, ask support@brilo.ai to enable it before you change anything in Salesforce. See Plans and what they include.
You'll also need:
System administrator access to the Salesforce org
Your My Domain URL, which ends in
.my.salesforce.comA phone you can call from, for the test in Step 5
Why a Salesforce External Client App, not a connected app
An External Client App is Salesforce's current framework for letting an outside service, such as an AI voice agent, sign in to your org over the API. Salesforce now steers new integrations toward External Client Apps, and Brilo uses one. If an older guide tells you to create a connected app, or to hand over a username, password and security token through a tool like Pipedream, skip it.
For a voice agent, the External Client App does two jobs:
It issues a Consumer Key and Consumer Secret. Brilo exchanges them for an access token using the OAuth client credentials flow. Nobody signs in and no password is stored. Brilo requests a fresh token whenever Salesforce stops accepting the old one.
It binds that token to one Run As user. Every lookup and write the agent makes runs as that user.
Three settings to get right:
Distribution State: Local. This keeps the app inside your own org.
OAuth scope: Manage user data via APIs (api). That's the only scope Brilo needs. Leave
full,refresh_tokenandoffline_accessunticked, because the client credentials flow doesn't use refresh tokens.Callback URL. Brilo never redirects anyone to it, but Salesforce won't save the app without one, so use the value in our docs.
Did you know?
The OAuth client credentials flow has no user sign-in at all. The token belongs to the app and acts as the Run As user you choose. That's why the Run As user, not the app, decides what your voice agent can see and change.
Step 1. Create a least-privilege Run As user
This is the most important decision in the whole setup. The agent can do exactly what the Run As user can do, and nothing more.
Use a dedicated integration user, never a person's login. When an employee leaves and their user is frozen, an agent running as them stops working on the very next call. On Enterprise Edition, Salesforce recommends the free Salesforce Integration user licence with the API Only profile for this.
The user needs three things:
API Enabled, on its profile or a permission set
Read on Contact, because Brilo's connection test reads Contacts
The object and field permissions for each action you plan to give the agent
Build one permission set per job instead of one large one. Here's what a typical inbound receptionist agent needs:
What the agent does | Brilo action | Permission set grants |
|---|---|---|
Greets the caller by name | Search one object by text, or SOQL Query on Contact | Read on Contact (and Lead, if leads call in) |
Logs the call | Create a task | Edit Tasks, plus Read on the linked Contact |
Opens a case | Create a support case | Read and Create on Case |
Answers from articles | Find knowledge articles | Knowledge User on the user record, Read on Knowledge |
Updates a detail the caller corrects | Update a contact | Read and Edit on Contact, plus field-level Edit on that field |
Salesforce also hides fields per user. If an action runs but a field comes back blank or won't save, the Run As user is missing field-level access. The connection test won't catch this, because it only checks Contacts. The full permission list for every action is in our Salesforce docs.
Delete actions are off in Brilo until support enables them for a named agent. Most teams never need them. Move an Opportunity to Closed Lost instead of deleting it.
Step 2. Create the app and enable the flow twice
Follow the docs for each click. One step catches most admins: you enable the Client Credentials Flow twice, on two different screens.
Settings (Flow Enablement). Ticking Enable Client Credentials Flow tells Salesforce the app is allowed to use the flow.
Edit Policies (OAuth Policies). Ticking it again and entering the Run As username tells Salesforce your org permits it, and which user to act as.
Edit Policies is a separate screen from Edit Settings. Skip it and Brilo reports "Salesforce has not enabled this flow yet".
If your org restricts logins by IP range, set IP Relaxation to Relax IP restrictions on the same Policies tab. Otherwise Salesforce refuses the token request.
Step 3. Wait for Salesforce to publish the app
Salesforce can take up to 30 minutes to make a new External Client App available. It's usually quicker. But if the connection test fails within half an hour of creating the app, wait before you change anything. Most "my key doesn't work" tickets are exactly this.
Use the time well. Set up your agent's actions in Brilo and write the test script for Step 5.
Step 4. How to connect Brilo to Salesforce
In the Brilo App Store, choose Salesforce and click Connect.
Paste your My Domain URL, Consumer Key and Consumer Secret.
Brilo checks them with Salesforce before saving anything, so a bad value never reaches a live agent.
When the test passes, click Install App.
Open your agent's Actions tab and add only the actions it needs.
A workspace holds one Salesforce connection.
Step 5. Make a scripted test call
The connection test proves Brilo can sign in. It doesn't prove any action works, because a missing permission only appears when that action runs. So place one scripted call per action before real customers ring.
Create a test Contact with your own mobile number in the Phone field, stored in the same format your real records use.
Call the agent from that phone. It should greet you by name. If it doesn't, check the number format first.
(415) 555-0123and+14155550123are different strings to an exact-match query.Ask something that needs a lookup, such as "do I have an open case?", with a test Case on the Contact.
Give it something to write. Correct your email address, or ask for a callback.
Hang up and open the Contact. You should see a Task for the call and the corrected field.
Check the call log in Brilo for any action that errored, and fix the permission it names.
Repeat for every action. Then point real numbers at the agent.
Troubleshooting: what each error means
Brilo names the exact failure when the connection test doesn't pass.
What Brilo says | Usual cause | Fix |
|---|---|---|
That is not your Salesforce address | You used the login page URL | Use the URL ending in |
Salesforce has not enabled this flow yet | Edit Policies step skipped | Enable Client Credentials Flow on Edit Policies and set the Run As user |
Salesforce refused the sign in | Run As user empty, inactive or missing API Enabled, or IP restrictions | Check the user and permission, set IP Relaxation |
Signed in, but we cannot read your contacts | Missing the | Add the scope or the permission |
Your Salesforce org has used its daily API limit | Nothing wrong with your setup | Wait up to 24 hours |
Common mistakes
Testing within 30 minutes of creating the app, then regenerating keys that were fine all along
Ticking the Client Credentials Flow on Settings but not on Edit Policies
Giving the Run As user a System Administrator profile instead of a scoped permission set
Skipping the scripted call because the connection test passed
Pro tips
Name permission sets after the job ("Voice agent: case creation") so the next admin knows why they exist.
Store phone numbers in one format across Contacts and Leads before go-live.
Add actions one at a time, and test each before adding the next.
What to set up next
Once you've connected your AI voice agent to Salesforce and the test calls pass, these are the natural next steps:
Map call outcomes to your own fields and picklists: How to map call data to Salesforce fields
Run automation off the Task the agent writes: How to trigger a Salesforce Flow when an AI call ends
See what lands on the record: AI voice agent for Salesforce
Still choosing a vendor? 8 best AI voice agents for Salesforce
One note on the phone side. Brilo answers on its own numbers or numbers you import or forward, and connects to Salesforce over the API, so there's nothing to install in your org.
Ready to connect an AI voice agent to Salesforce? Open the Brilo App Store, follow the docs, and place your first test call today.
Preguntas frecuentes
How do I connect an AI voice agent to Salesforce?
Create an External Client App in Salesforce Setup, enable OAuth with the api scope and the Client Credentials Flow, set a dedicated integration user as Run As under Edit Policies, then paste the Consumer Key, Secret and My Domain URL into your voice agent and run a test call.
Do I need a developer to connect Brilo to Salesforce?
No. You need a Salesforce administrator. Every step happens in Salesforce Setup and the Brilo App Store, nothing is installed in your org, and it takes about ten minutes.
Which Brilo plan includes the Salesforce integration?
The Pro plan and above. Salesforce connects through the Brilo App Store, which isn't included on Free or Starter.
Why does my Salesforce connection fail right after I create the app?
Salesforce can take up to 30 minutes to make a new External Client App available. Wait, then test again before changing your keys.
What permissions does the Salesforce integration user need?
API Enabled, Read on Contact, and the object and field permissions each action needs, such as Edit Tasks for call logging or Create on Case for new cases. Give it nothing more.
Can I connect a Salesforce sandbox and a production org to Brilo?
A Brilo workspace holds one Salesforce connection. Contact Brilo support for the recommended way to test against a sandbox before connecting production.
Does the Salesforce Open CTI retirement affect this setup?
Open CTI affects softphones and call center adapters that run inside the Salesforce console. The setup in this guide uses an External Client App and the standard Salesforce API, which isn't an Open CTI integration.
Todos los insights
Artรญculos
How to Connect an AI Voice Agent to Salesforce: External Client App, Run As User and a Test Call in 10 Minutes
Connect an AI voice agent to Salesforce with an External Client App, a least-privilege Run As user and a scripted test call. No developer needed, about ten minutes.

By Yatheendra, Founder, Brilo AI
Short answer: To connect an AI voice agent to Salesforce, create an External Client App in Salesforce Setup with OAuth and the Client Credentials Flow turned on, set a dedicated integration user as its Run As user, and paste the Consumer Key, Consumer Secret and your My Domain URL into the voice agent. Then give that user only the permissions your agent's actions need and place a scripted test call. With Brilo it takes about ten minutes and a Salesforce admin, not a developer.
Getting the keys to work is the easy part. Most failed setups break somewhere else: an edition without API access, an agent running as someone's personal login, a missing field permission that only shows up when a real customer calls.
This guide covers those decisions. The click-by-click steps live in our docs at Connect Salesforce, and we link to them at each stage rather than repeat them.
Before you start: edition, plan and access
Two checks prevent most failed setups. Do them before you open Setup.
1. Your Salesforce edition. A voice agent reads and writes records through the Salesforce API, so your org needs API access. Enterprise, Unlimited, Performance and Developer editions include it. Professional Edition only has it with the paid API add-on, and Essentials and Starter have none. Brilo's docs confirm Enterprise and above work.
To check, go to Setup, then Company Information, and read the Organization Edition field.
2. Your Brilo plan. Salesforce connects through the Brilo App Store, which comes with the Pro plan ($149 a month) and above. Free and Starter don't include it. Salesforce is also switched on per workspace, so open the App Store and check it's listed. If it isn't, ask support@brilo.ai to enable it before you change anything in Salesforce. See Plans and what they include.
You'll also need:
System administrator access to the Salesforce org
Your My Domain URL, which ends in
.my.salesforce.comA phone you can call from, for the test in Step 5
Why a Salesforce External Client App, not a connected app
An External Client App is Salesforce's current framework for letting an outside service, such as an AI voice agent, sign in to your org over the API. Salesforce now steers new integrations toward External Client Apps, and Brilo uses one. If an older guide tells you to create a connected app, or to hand over a username, password and security token through a tool like Pipedream, skip it.
For a voice agent, the External Client App does two jobs:
It issues a Consumer Key and Consumer Secret. Brilo exchanges them for an access token using the OAuth client credentials flow. Nobody signs in and no password is stored. Brilo requests a fresh token whenever Salesforce stops accepting the old one.
It binds that token to one Run As user. Every lookup and write the agent makes runs as that user.
Three settings to get right:
Distribution State: Local. This keeps the app inside your own org.
OAuth scope: Manage user data via APIs (api). That's the only scope Brilo needs. Leave
full,refresh_tokenandoffline_accessunticked, because the client credentials flow doesn't use refresh tokens.Callback URL. Brilo never redirects anyone to it, but Salesforce won't save the app without one, so use the value in our docs.
Did you know?
The OAuth client credentials flow has no user sign-in at all. The token belongs to the app and acts as the Run As user you choose. That's why the Run As user, not the app, decides what your voice agent can see and change.
Step 1. Create a least-privilege Run As user
This is the most important decision in the whole setup. The agent can do exactly what the Run As user can do, and nothing more.
Use a dedicated integration user, never a person's login. When an employee leaves and their user is frozen, an agent running as them stops working on the very next call. On Enterprise Edition, Salesforce recommends the free Salesforce Integration user licence with the API Only profile for this.
The user needs three things:
API Enabled, on its profile or a permission set
Read on Contact, because Brilo's connection test reads Contacts
The object and field permissions for each action you plan to give the agent
Build one permission set per job instead of one large one. Here's what a typical inbound receptionist agent needs:
What the agent does | Brilo action | Permission set grants |
|---|---|---|
Greets the caller by name | Search one object by text, or SOQL Query on Contact | Read on Contact (and Lead, if leads call in) |
Logs the call | Create a task | Edit Tasks, plus Read on the linked Contact |
Opens a case | Create a support case | Read and Create on Case |
Answers from articles | Find knowledge articles | Knowledge User on the user record, Read on Knowledge |
Updates a detail the caller corrects | Update a contact | Read and Edit on Contact, plus field-level Edit on that field |
Salesforce also hides fields per user. If an action runs but a field comes back blank or won't save, the Run As user is missing field-level access. The connection test won't catch this, because it only checks Contacts. The full permission list for every action is in our Salesforce docs.
Delete actions are off in Brilo until support enables them for a named agent. Most teams never need them. Move an Opportunity to Closed Lost instead of deleting it.
Step 2. Create the app and enable the flow twice
Follow the docs for each click. One step catches most admins: you enable the Client Credentials Flow twice, on two different screens.
Settings (Flow Enablement). Ticking Enable Client Credentials Flow tells Salesforce the app is allowed to use the flow.
Edit Policies (OAuth Policies). Ticking it again and entering the Run As username tells Salesforce your org permits it, and which user to act as.
Edit Policies is a separate screen from Edit Settings. Skip it and Brilo reports "Salesforce has not enabled this flow yet".
If your org restricts logins by IP range, set IP Relaxation to Relax IP restrictions on the same Policies tab. Otherwise Salesforce refuses the token request.
Step 3. Wait for Salesforce to publish the app
Salesforce can take up to 30 minutes to make a new External Client App available. It's usually quicker. But if the connection test fails within half an hour of creating the app, wait before you change anything. Most "my key doesn't work" tickets are exactly this.
Use the time well. Set up your agent's actions in Brilo and write the test script for Step 5.
Step 4. How to connect Brilo to Salesforce
In the Brilo App Store, choose Salesforce and click Connect.
Paste your My Domain URL, Consumer Key and Consumer Secret.
Brilo checks them with Salesforce before saving anything, so a bad value never reaches a live agent.
When the test passes, click Install App.
Open your agent's Actions tab and add only the actions it needs.
A workspace holds one Salesforce connection.
Step 5. Make a scripted test call
The connection test proves Brilo can sign in. It doesn't prove any action works, because a missing permission only appears when that action runs. So place one scripted call per action before real customers ring.
Create a test Contact with your own mobile number in the Phone field, stored in the same format your real records use.
Call the agent from that phone. It should greet you by name. If it doesn't, check the number format first.
(415) 555-0123and+14155550123are different strings to an exact-match query.Ask something that needs a lookup, such as "do I have an open case?", with a test Case on the Contact.
Give it something to write. Correct your email address, or ask for a callback.
Hang up and open the Contact. You should see a Task for the call and the corrected field.
Check the call log in Brilo for any action that errored, and fix the permission it names.
Repeat for every action. Then point real numbers at the agent.
Troubleshooting: what each error means
Brilo names the exact failure when the connection test doesn't pass.
What Brilo says | Usual cause | Fix |
|---|---|---|
That is not your Salesforce address | You used the login page URL | Use the URL ending in |
Salesforce has not enabled this flow yet | Edit Policies step skipped | Enable Client Credentials Flow on Edit Policies and set the Run As user |
Salesforce refused the sign in | Run As user empty, inactive or missing API Enabled, or IP restrictions | Check the user and permission, set IP Relaxation |
Signed in, but we cannot read your contacts | Missing the | Add the scope or the permission |
Your Salesforce org has used its daily API limit | Nothing wrong with your setup | Wait up to 24 hours |
Common mistakes
Testing within 30 minutes of creating the app, then regenerating keys that were fine all along
Ticking the Client Credentials Flow on Settings but not on Edit Policies
Giving the Run As user a System Administrator profile instead of a scoped permission set
Skipping the scripted call because the connection test passed
Pro tips
Name permission sets after the job ("Voice agent: case creation") so the next admin knows why they exist.
Store phone numbers in one format across Contacts and Leads before go-live.
Add actions one at a time, and test each before adding the next.
What to set up next
Once you've connected your AI voice agent to Salesforce and the test calls pass, these are the natural next steps:
Map call outcomes to your own fields and picklists: How to map call data to Salesforce fields
Run automation off the Task the agent writes: How to trigger a Salesforce Flow when an AI call ends
See what lands on the record: AI voice agent for Salesforce
Still choosing a vendor? 8 best AI voice agents for Salesforce
One note on the phone side. Brilo answers on its own numbers or numbers you import or forward, and connects to Salesforce over the API, so there's nothing to install in your org.
Ready to connect an AI voice agent to Salesforce? Open the Brilo App Store, follow the docs, and place your first test call today.
Preguntas frecuentes
How do I connect an AI voice agent to Salesforce?
Create an External Client App in Salesforce Setup, enable OAuth with the api scope and the Client Credentials Flow, set a dedicated integration user as Run As under Edit Policies, then paste the Consumer Key, Secret and My Domain URL into your voice agent and run a test call.
Do I need a developer to connect Brilo to Salesforce?
No. You need a Salesforce administrator. Every step happens in Salesforce Setup and the Brilo App Store, nothing is installed in your org, and it takes about ten minutes.
Which Brilo plan includes the Salesforce integration?
The Pro plan and above. Salesforce connects through the Brilo App Store, which isn't included on Free or Starter.
Why does my Salesforce connection fail right after I create the app?
Salesforce can take up to 30 minutes to make a new External Client App available. Wait, then test again before changing your keys.
What permissions does the Salesforce integration user need?
API Enabled, Read on Contact, and the object and field permissions each action needs, such as Edit Tasks for call logging or Create on Case for new cases. Give it nothing more.
Can I connect a Salesforce sandbox and a production org to Brilo?
A Brilo workspace holds one Salesforce connection. Contact Brilo support for the recommended way to test against a sandbox before connecting production.
Does the Salesforce Open CTI retirement affect this setup?
Open CTI affects softphones and call center adapters that run inside the Salesforce console. The setup in this guide uses an External Client App and the standard Salesforce API, which isn't an Open CTI integration.
รltimas novedades
Todos los recursos
Artรญculos
Casos de estudio
Tutoriales

Artรญculos
8 Best AI Voice Agents for Salesforce in 2026, Compared Field by Field
Best AI voice agent for Salesforce in 2026? We compare 8 tools on caller lookup, Task write-back, custom fields, Flow triggers and editions, with Brilo's gaps included.

Artรญculos
How to Connect an AI Voice Agent to Salesforce: External Client App, Run As User and a Test Call in 10 Minutes
Connect an AI voice agent to Salesforce with an External Client App, a least-privilege Run As user and a scripted test call. No developer needed, about ten minutes.
Cargar mรกs
รltimas novedades
Todos los recursos
Artรญculos
Casos de estudio
Tutoriales

Artรญculos
8 Best AI Voice Agents for Salesforce in 2026, Compared Field by Field
Best AI voice agent for Salesforce in 2026? We compare 8 tools on caller lookup, Task write-back, custom fields, Flow triggers and editions, with Brilo's gaps included.

Artรญculos
How to Connect an AI Voice Agent to Salesforce: External Client App, Run As User and a Test Call in 10 Minutes
Connect an AI voice agent to Salesforce with an External Client App, a least-privilege Run As user and a scripted test call. No developer needed, about ten minutes.
Cargar mรกs
Automatice su negocio con agentes telefรณnicos de IA
Automatice su negocio con agentes telefรณnicos de IA
Automatice su negocio con agentes telefรณnicos de IA
Automatice su negocio con agentes telefรณnicos de IA
Automatizaciรณn de llamadas para el sector salud, inmobiliario, logรญstica, servicios financieros y pequeรฑas empresas.
Automatizaciรณn de llamadas para el sector salud, inmobiliario, logรญstica, servicios financieros y pequeรฑas empresas.
Unirse a Discord
Conรฉctese con nuestra comunidad, haga preguntas y mantรฉngase al dรญa con las novedades del producto.
Reservar una llamada
Programe una llamada rรกpida con nuestro equipo para explorar soluciones para sus necesidades.
Empezar
Industrias
Casos de uso
Integraciones
Legal y Comunidad

Unirse a Discord
Conรฉctese con nuestra comunidad, haga preguntas y mantรฉngase al dรญa con las novedades del producto.
Reservar una llamada
Programe una llamada rรกpida con nuestro equipo para explorar soluciones para sus necesidades.
Empezar
Industrias
Casos de uso
Integraciones
Legal y Comunidad

Unirse a Discord
Conรฉctese con nuestra comunidad, haga preguntas y mantรฉngase al dรญa con las novedades del producto.
Reservar una llamada
Programe una llamada rรกpida con nuestro equipo para explorar soluciones para sus necesidades.
Empezar
Industrias
Casos de uso
Integraciones
Legal y Comunidad

Unirse a Discord
Conรฉctese con nuestra comunidad, haga preguntas y mantรฉngase al dรญa con las novedades del producto.
Reservar una llamada
Programe una llamada rรกpida con nuestro equipo para explorar soluciones para sus necesidades.
Empezar
Industrias
Casos de uso
Integraciones
Legal y Comunidad

