Introduction
Connect Salesforce so the AI assistant and agents can search selected Salesforce objects at the moment a user asks a question.
This is a live connector. Nothing from Salesforce is copied, indexed, or stored in Docebo. When a user asks a question, Docebo searches the Salesforce objects you've made available at that moment, using the user's own Salesforce account.
How permissions work for Salesforce: each colleague connects their own Salesforce account the first time they ask a question. Every search then runs as that user, so Salesforce applies its own access rules and they only see the records Salesforce lets them see. Each user's Salesforce account needs the API Enabled permission (see Required settings).
1. Prerequisites in the source system
Required role
You need a Salesforce administrator who can create an external client app.
Required settings
Every person who will ask questions about Salesforce data needs a Salesforce user with the API Enabled permission. The System Administrator profile and most standard profiles have it.
To check, open Profiles in Salesforce, click the user's profile, and look for API Enabled among its permissions. A permission set can grant it too.
2. Preparation in the source system
You create an external client app in Salesforce and copy its Consumer Key and Consumer Secret into Docebo.
Already have an app? Reuse it instead. Open it in the External Client App Manager and check the settings from Turn on OAuth and add the callback URL, Require the secret and create the app, and Let your users connect: the callback URL, the four scopes, Require secret for Web Server Flow, and Relax IP restrictions. Then continue with Copy the Consumer Key and Consumer Secret.
Open the New External Client App page
- In Docebo, on the Authorize tab, click Open the New External Client App page. Salesforce opens in a new tab.
- Sign in with a Salesforce administrator account if Salesforce asks you to.
- You see the New External Client App form. Keep this window open.
If the link doesn't open the form: in Salesforce, click the gear icon at the top right, then Setup. Type External Client App Manager in Quick Find, open it, and click New External Client App.
Name the app
Under Basic Information:
- External Client App Name: type a name, for example "Docebo AI knowledge".
- API Name: Salesforce fills it in for you.
- Contact Email: type your email address.
- Distribution State: leave Local.
Don't click Create yet.
Turn on OAuth and add the callback URL
- Scroll down and click API (Enable OAuth Settings) to open it.
- Tick Enable OAuth.
- Paste the callback URL into Callback URL. It must match exactly. It follows this pattern: https://[YOUR-DOCEBO-PLATFORM-URL]/knowledge/v1/integrations/connections/callback, for example https://demo.docebosaas.com/knowledge/v1/integrations/connections/callback.
- Under OAuth Scopes, select each of the four scopes below in Available OAuth Scopes and move it to Selected OAuth Scopes with the arrow button.
| Scope | Code |
|---|---|
| Manage user data via APIs | api |
| Perform requests at any time | refresh_token, offline_access |
| Access unique user identifiers | openid |
| Access the identity URL service | id, profile, email, address, phone |
Require the secret and create the app
- Scroll down to Security.
- Tick Require secret for Web Server Flow and Require secret for Refresh Token Flow.
- Leave everything else as it is. The greyed-out ticks are set by Salesforce and can't be changed.
- Click Create at the bottom of the page.
Let your users connect
Salesforce now shows the page of your new app.
- On the Policies tab, click Edit.
- Click OAuth Policies to open it.
- Under App Authorization, set IP Relaxation to Relax IP restrictions.
- Leave Permitted Users on All users can self-authorize and the refresh token policy on 30 days.
- Click Save.
Copy the Consumer Key and Consumer Secret
- Open the Settings tab of the app and click OAuth Settings to open it.
- Click Consumer Key and Secret. Salesforce opens a new tab.
- Salesforce emails you a verification code. Type it and click Verify.
- Click Copy next to Consumer Key and paste it into Consumer key in Docebo.
- Click Copy next to Consumer Secret and paste it into Consumer secret in Docebo.
3. Required actions in Docebo
| Information to enter | Where to find it |
|---|---|
| Consumer key | Salesforce → your app → Settings → OAuth Settings → Consumer Key and Secret |
| Consumer secret | Salesforce → your app → Settings → OAuth Settings → Consumer Key and Secret |
Authorizing the connector
- Go to Add-ons and integrations → Knowledge Connectors → Create → Salesforce. This menu is only visible to Superadmins. On the Overview tab, review what will be searched and select Get started.
On the Setup tab, tell Docebo which Salesforce org to use. Open Salesforce in another browser tab and sign in, copy the whole address from the address bar, and paste it into Paste your Salesforce address (recommended). Any Salesforce page works, for example the home page. This works for every org, including those that block the standard login page. Docebo then shows the address where your users will sign in. Alternatively, choose Use the standard login page (login.salesforce.com, for production or Developer Edition) or Use the sandbox login page (test.salesforce.com). Select Continue.
On the Authorize tab, enter the Consumer key and Consumer secret (see the table above) and select Authenticate.
Sign in to Salesforce in the window that opens and click Allow. Salesforce says the app is unknown or not approved? A new app can take a few minutes to be ready. Wait a few minutes and click Authenticate again. Renewing the authentication of a connector that already works? Leave Consumer key and Consumer secret empty, and the saved ones are used.
On the Objects tab, select the Salesforce objects that contain relevant knowledge, for example Cases, Accounts, or Knowledge articles. Use the search box to find an object, and select Clear selection to start over. Then select Save. Nothing is copied or indexed. This only defines which objects can be added to Knowledge collections.