Skip to main content
Incoming Call Personalization lets you provide customer-specific data to your agent when someone calls in. Your agent can greet callers by name, reference their policy, or tailor the conversation based on data you provide through one of several personalization sources. When a call arrives, Strada looks up the caller’s phone number, retrieves the relevant data, and injects it into your agent’s prompt variables ({{firstName}}, {{policyNumber}}, etc.) before the conversation begins.

Prerequisites

Before configuring personalization, define variables in your agent’s conversation flow. Use double-brace syntax anywhere in your prompt:
Hi {{firstName}}! I see you have policy {{policyNumber}}. How can I help you today?
Your agent also needs to be attached to a phone number. You can configure this under Phone Numbers in the dashboard.
Variable names must not contain whitespace. Use camelCase or snake_case.

Personalization Sources

Strada supports four personalization sources. You can configure these under your agent’s Actions tab in the Incoming Call Personalization card.

Incoming Webhook

Push customer data to Strada ahead of time via the API. When a call comes in from that phone number, the stored data is used to populate your agent’s variables. This is ideal when you want to hydrate data from your own systems (CRM, policy management, etc.) before the customer calls. Setup:
  1. Navigate to your agent’s Actions tab
  2. Click Configure on the Incoming Call Personalization card
  3. Select External Source
  4. In the source dropdown, choose Incoming Webhook
  5. Click Save
Pushing data: Use the Push Call Personalization Data endpoint to send customer data:
curl -X POST https://api.getstrada.com/api/call-personalization-webhook \
  -H "Authorization: Bearer $YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "phoneNumber": "+15551234567",
    "data": {
      "firstName": "John",
      "policyNumber": "POL-12345",
      "claimStatus": "Active"
    }
  }'
A successful response returns:
{
  "success": true
}
You can find your API key in the Strada dashboard under Settings > Organizations.
How data is used: Each push is a complete snapshot of the data you want the agent to have. Only the most recent push for a phone number is used. When a call comes in and uses the data, that push is marked as consumed and won’t be used for future calls. If the most recent push has already been consumed, the agent proceeds without personalization. Older pushes are never used as a fallback. If you need to hydrate the same number again (e.g., the customer is going to call back), simply push new data.
Each push is good for one call. To personalize another call to the same number, push new data.
Key details:
  • Each push should include all the variables you want the agent to have for that call.
  • The keys in your data object must exactly match the {{variable}} names in your agent’s prompt.
  • Values can be any type (strings, numbers, booleans, etc.).
Phone number normalization: Phone numbers are automatically normalized to E.164 format. All of the following formats resolve to the same customer:
  • +15551234567
  • 5551234567
  • (555) 123-4567
  • 1-555-123-4567
US numbers are assumed by default for 10-digit inputs. International numbers should include the country code.
Make sure you push data using the same phone number the customer will call from. The lookup is based on the caller’s phone number.

Custom URL

Strada sends a POST request to your server when a call comes in. Your server responds with the variable values to use for the call. This is useful when you want to fetch data in real time rather than pushing it ahead of time. Setup:
  1. Navigate to your agent’s Actions tab
  2. Click Configure on the Incoming Call Personalization card
  3. Select External Source
  4. In the source dropdown, choose Custom URL
  5. Enter your server URL
  6. Optionally add a secret (sent as the X-Strada-Secret header) and any additional request headers
  7. Click Save
How it works: When a call comes in, Strada sends a POST request to your URL:
{
  "customerNumber": "+15551234567"
}
Your server should respond with the variable values. You can either return them under an agentVariables key (recommended) or as the top-level response body:
{
  "agentVariables": {
    "firstName": "John",
    "policyNumber": "POL-12345"
  }
}
Your server must respond within 5 seconds. If the request times out or fails, the agent proceeds without personalization data.

REST Connection

Similar to Custom URL, but uses a pre-configured REST connection from your Apps settings. This is useful if you already have a REST API connection set up with authentication. Setup:
  1. Navigate to your agent’s Actions tab
  2. Click Configure on the Incoming Call Personalization card
  3. Select External Source
  4. In the source dropdown, choose your REST connection
  5. Optionally specify a path to append to the connection’s base URL (e.g., /incoming-call)
  6. Click Save
The request and response format is the same as Custom URL. Authentication headers from your REST connection are automatically included.
Your endpoint must respond within 5 seconds. If the request times out or fails, the agent proceeds without personalization data.

Outbound Campaign

Automatically uses data from your outbound campaigns when a caller’s phone number matches a contact. No API integration or additional configuration is needed. This is useful when you run outbound campaigns and want to personalize the experience if those contacts call you back. Setup:
  1. Navigate to your agent’s Actions tab
  2. Click Configure on the Incoming Call Personalization card
  3. Select Outbound Campaign
  4. Click Save
When a call comes in, Strada looks for the most recent outbound campaign call to the caller’s number and uses the variables from that call.
The caller’s phone number must match a contact in one of your completed outbound campaigns. If no match is found, the agent proceeds without personalization data.

Pre-Call Workflow

Run a Strada workflow before the call begins. This gives you the most flexibility: you can make API calls, transform data, apply logic, or even block or transfer the call before it reaches the agent. Setup:
  1. Create an inbound pre-call workflow under Pre-Call Workflows in the dashboard
  2. Navigate to your agent’s Actions tab
  3. Click Configure on the Incoming Call Personalization card
  4. Select Pre-Call Workflow
  5. Choose your workflow from the dropdown
  6. Click Save
What the workflow can do:
  • Update variables: Enrich or transform data before the call starts
  • Block the call: Reject the call with a reason (e.g., known spam number)
  • Transfer the call: Route the call to a different phone number
  • Handoff: Route the call to a different Strada agent
The workflow receives the caller’s phone number and your configured secret variables as inputs. If you also have an Incoming Webhook configured, any pushed data is loaded as the default agent variables before the workflow runs. The workflow can then override or enrich those values as needed. The workflow can use HTTP nodes to call external APIs, making this a good replacement for Custom URL if you need more control over the logic.
Inbound workflows must complete within 5 seconds. Delay and LLM nodes are not supported. If the workflow times out or fails, the agent proceeds without personalization data.

Choosing a Source

SourceBest forData timingRequires code
Incoming WebhookHydrating data ahead of time from your systemsBefore the callYes (API call)
Custom URLReal-time data lookup from your serverAt call timeYes (HTTP server)
REST ConnectionReal-time lookup using a pre-configured connectionAt call timeYes (HTTP server)
Outbound CampaignPersonalizing callbacks from campaign contactsCampaign creationNo
Pre-Call WorkflowComplex logic, conditional routing, or blockingAt call timeNo (visual builder)
Only one personalization source can be active at a time per agent. If no data is found for the caller’s phone number, the agent proceeds normally without variable values.