Call the Decisioning API

Updated Nov 8, 2026 Based on Salesforce docs updated 2026-08-27

Call the Decisioning API from your own app or website to get a personalization decision — who qualifies and what content to show — back in real time, over plain HTTP. Use the authenticated flow server-side and the unauthenticated flow for public web pages.

Authenticated request (server-side)

  1. Obtain an OAuth access token for your connected app (see connected-app authentication).
  2. Send a Bearer-authenticated request naming the personalization point and the individual.
  3. Parse the response for the decision’s content and merge fields.
  4. Render that content in your app, or log the decision for later analysis.
decisioning-request.sh (illustrative)
curl -X POST "{{instance_url}}/personalization/decisioning" \
-H "Authorization: Bearer {{access_token}}" \
-H "Content-Type: application/json" \
-d '{ "pointId": "{{point_id}}", "individualId": "{{individual_id}}" }'
decisioning-response.json (illustrative)
{
"pointId": "{{point_id}}",
"decisionId": "{{decision_id}}",
"content": {
  "template": "{{template_name}}",
  "mergeFields": { "{{field_name}}": "{{field_value}}" }
}
}

Unauthenticated request (public web)

For public web, the Website connector’s SDK calls an unauthenticated decisioning endpoint scoped to your connector — no user token, but still rate-limited. Use this path for anonymous, on-page personalization rather than calling the authenticated endpoint from the browser.

Decisioning API — Postman collection Postman collection v2.1 · JSON · credentials scrubbed
Decisioning API request and response in Postman
Screenshot: Decisioning API call

Discussion

Comments are not configured for local development. They appear once the site owner connects GitHub Discussions (Giscus).

Support SF Guide

SF Guide is a free, independent guide to Salesforce Personalization, built and maintained in the open. If it saved you time on an implementation, a small contribution helps keep it current and ad-light.