Before you start
- A Pro or Enterprise plan.
- Lightning Knowledge turned on in your org.
- Your org’s My Domain URL, for example
https://acme.my.salesforce.com. - The Edit Sources permission on the knowledge base. Owners and admins always have it.
Set up
Create a connected app
In Salesforce Setup → App Manager, create a connected app with OAuth turned on and Enable Client Credentials Flow ticked. In the app’s policies, set a Run As user. Kelu reads what that user can read.
Copy the consumer key and secret
Open the app’s consumer details and copy the Consumer Key and Consumer Secret.
Settings
| Field | Required | Description |
|---|---|---|
| Instance URL | Yes | Your My Domain URL, such as https://acme.my.salesforce.com. |
| Consumer key | Yes | The connected app’s consumer key. |
| Consumer secret | Yes | The connected app’s consumer secret. |
| Publishing channels | No | Index only articles published to at least one of the ticked channels: Public knowledge base, Customer site, Partner site, Internal app. Leave empty to index every article. Ticking a channel removes every other article from the source on the next sync, including any with no channel set. This picks what is indexed, not what is public (see below). |
What gets indexed
- Every published article the Run As user can read, in every language. Drafts and archived articles are skipped.
- Each article becomes one document: its title, summary, article number, and each text or rich-text body field under its own heading.
- The citation links to
<instance URL>/articles/<URL name>, or to the article’s record page if it has no URL name.
Only articles published to the public knowledge base, the customer site or the partner site are public. Every other article is indexed as Restricted: one published only to the internal app, and one with no channel set at all. Restricted articles answer in Ask and in Slack and Teams bots, but never on your widget, the public API or helpdesk replies.
- An article indexed as public before this is switched to restricted on its next sync.
- Kelu never makes an article public on its own. To put a restricted article on your widget, publish it to the public knowledge base, the customer site or the partner site in Salesforce, then set it public in Kelu. An article that is still on none of them goes back to restricted on the next sync.
- Partner-site articles are public, because they are published outside your company. If they must stay off a public widget, tick only Public knowledge base and Customer site under Publishing channels. That leaves partner-only articles out of the index, along with internal-only articles and articles with no channel, so Ask no longer answers from them either.
Sync
Articles sync every hour. Sync Now on the source page runs a sync at once.Troubleshooting
- “salesforce token error” — the client credentials flow is off, no Run As user is set, or the key or secret is wrong. The message includes Salesforce’s own reason.
- An article is missing — check that it is published, and that the Run As user can see it. If you ticked Publishing channels, check that the article is on one of them.
- The widget doesn’t answer from your articles, but Ask does — the articles are restricted because they are not on the public knowledge base, the customer site or the partner site. Articles created through the Salesforce API often have no channel set. Publish them to one of those channels in Salesforce, then set them public in Kelu.
- “has no IsVisibleIn… field, so channel … cannot be filtered on” — you ticked a publishing channel your org’s Knowledge object does not have. Untick it under Publishing channels.
- “exposes no text or rich-text field” — the article object has no body field Kelu can read. Contact Kelu support.
- “describe Knowledge__kav” fails — the org uses Classic Knowledge, or the Run As user cannot read Knowledge articles.