The Create a Record app creates a new Salesforce record — such as a Case, Lead, or custom object — directly from a routing policy, and returns a result set that can be referenced later in the flow using macros.
Available in the Call Policy? | Available in the Data Analytics Policy? | Available in the Digital Policy? | Available in the System Policy? |
|---|---|---|---|
✔ | ✔ | ✔ | ✔ |
.png?sv=2026-02-06&spr=https&st=2026-06-21T11%3A49%3A55Z&se=2026-06-21T12%3A03%3A55Z&sr=c&sp=r&sig=oDUUZH2XwzUckgPmUAW3FwmtocT1zd2uiopxOtLMZ7Q%3D)
Purpose: Creates a new record in Salesforce and returns a result set containing the created record's details, which can be referenced later in the policy using macros.
Location: Action container, within a Call, Data Analytics, Digital, or System routing policy.
What is the Create a Record app?
The Create a Record app allows your routing policy to automatically generate Salesforce records at a defined point in the call or data flow. When a call passes through this app, a new record is created in the specified Salesforce object with the field values you define. The app then returns a result set — a named collection of data from the newly created record — that can be referenced anywhere else in the policy where macros are supported.
This is commonly used to create Cases for inbound service calls, generate Leads for unknown callers, or log records on custom objects for tracking and reporting purposes.
Before you begin
A routing policy open in the Policy Builder, with an Action container ready to hold the app.
Salesforce object and fields identified — know which record type you want to create (e.g. Case, Lead, custom object) and which fields need to be populated.
Owner ID available — you need the Salesforce User ID or Queue ID that should own the new record. This can be a static value or a macro that resolves at runtime.
Query Object app (optional) — if you need to populate fields with data from existing Salesforce records (e.g. linking a Case to a Contact), place a Query Object app earlier in the policy to look up that data first.
Use cases
Creating a Case for inbound service calls so agents have a record ready when they answer.
Generating a Lead for unknown callers who do not match any existing Contact or Account.
Creating a custom object record to log that a specific call path was reached (e.g. out-of-hours calls).
Automatically creating a Task linked to an Account or Opportunity based on caller data.
Configuration reference
Give the app a name under Name this item, then configure it under Configure this item.
General settings
Field | Value (* = default) | Notes |
|---|---|---|
Result Set | MyData* | A name for the result set returned by this app. Use a recognisable name — you will reference it later in the policy using macros (e.g. |
Test Create | Button | Click to test the configuration. Runs the app and attempts to create a record using the configured settings. Use this to verify your setup before saving the policy. |
Trigger When | Record created* (checked) | Error returned (unchecked) | Defines when this app triggers its connector output. Record created triggers when the record is successfully created. Error returned triggers when the creation fails. If neither is checked, the app cannot route the call via its connector — the call always passes to the next app in the container. |
Record configuration
Field | Value (* = default) | Notes |
|---|---|---|
Record Type | Dropdown list of Salesforce objects | Select the Salesforce object to create a record on (e.g. Case, Lead, Account, or any custom object available in your org). This selection determines which fields are available in the Set Field Values section below. |
Owner ID | Blank (required) | The Salesforce User ID or Queue ID that will own the new record. Macros can be used — for example, |
Show Salesforce API Names | Unchecked* | When ticked, the fields in the Record Type dropdown and Set Field Values section display Salesforce API names instead of friendly labels. |
Set field values
This section defines the field values to populate on the new record. Click Add Row to add additional field mappings. You can add as many rows as needed.
Field | Value (* = default) | Notes |
|---|---|---|
Field | Dropdown list (based on Record Type) | Select the field on the record to populate. The available options update dynamically based on the Record Type selected above. |
Value | Blank | The value to set for this field. Macros can be used — for example, |
💡
Tip: Use the Query Object app earlier in the policy to look up data from Salesforce, then reference that data here using macros. For example, query for a Contact by caller number, then use
$(ContactLookup.Id)in the Create a Record app to link the new Case to that Contact.
.png?sv=2026-02-06&spr=https&st=2026-06-21T11%3A49%3A55Z&se=2026-06-21T12%3A03%3A55Z&sr=c&sp=r&sig=oDUUZH2XwzUckgPmUAW3FwmtocT1zd2uiopxOtLMZ7Q%3D)
Result
After the app runs, the call or data flow follows one of two paths:
Triggered — if the configured Trigger When condition is met (record created or error returned), the call exits via the app's connector to a linked container.
Not triggered — the call passes to the next app in the container, or exits the container if no further apps exist.
If the app is triggered but no connector is linked, the call is hung up by default.
The result set created by this app (named as configured in the Result Set field) is available for the remainder of the policy. Reference it using macros wherever macro input is supported — for example, $(MyData.Id) returns the Salesforce ID of the newly created record.
ℹ️
Note: Always use the Test Create button to verify your configuration before saving the policy. This confirms that the record is created successfully and the correct fields are populated.