Index the published articles in your Salesforce Knowledge base. The source connects with its own Salesforce connected app. To index support cases as well, add a Salesforce Cases source. It can use the same connected app.

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

1

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.
2

Copy the consumer key and secret

Open the app’s consumer details and copy the Consumer Key and Consumer Secret.
3

Add the source

In Kelu, open the knowledge base, go to Sources → Add source, pick Salesforce Knowledge and click Continue. Enter a Display name, then fill in the fields below. Click Test connection, then Add source.

Settings

FieldRequiredDescription
Instance URLYesYour My Domain URL, such as https://acme.my.salesforce.com.
Consumer keyYesThe connected app’s consumer key.
Consumer secretYesThe connected app’s consumer secret.
Publishing channelsNoIndex 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.