curl --request POST \
--url https://api.getstrada.com/api/call-personalization-webhook \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"phoneNumber": "+15551234567",
"data": {
"firstName": "John",
"policyNumber": "POL-12345",
"claimStatus": "Active"
}
}
'import requests
url = "https://api.getstrada.com/api/call-personalization-webhook"
payload = {
"phoneNumber": "+15551234567",
"data": {
"firstName": "John",
"policyNumber": "POL-12345",
"claimStatus": "Active"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
phoneNumber: '+15551234567',
data: {firstName: 'John', policyNumber: 'POL-12345', claimStatus: 'Active'}
})
};
fetch('https://api.getstrada.com/api/call-personalization-webhook', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.getstrada.com/api/call-personalization-webhook",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'phoneNumber' => '+15551234567',
'data' => [
'firstName' => 'John',
'policyNumber' => 'POL-12345',
'claimStatus' => 'Active'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.getstrada.com/api/call-personalization-webhook"
payload := strings.NewReader("{\n \"phoneNumber\": \"+15551234567\",\n \"data\": {\n \"firstName\": \"John\",\n \"policyNumber\": \"POL-12345\",\n \"claimStatus\": \"Active\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.getstrada.com/api/call-personalization-webhook")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"phoneNumber\": \"+15551234567\",\n \"data\": {\n \"firstName\": \"John\",\n \"policyNumber\": \"POL-12345\",\n \"claimStatus\": \"Active\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getstrada.com/api/call-personalization-webhook")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"phoneNumber\": \"+15551234567\",\n \"data\": {\n \"firstName\": \"John\",\n \"policyNumber\": \"POL-12345\",\n \"claimStatus\": \"Active\"\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true
}{
"error": "phoneNumber: phoneNumber is required"
}Push call personalization data
Push customer data for a phone number ahead of an inbound call. When a call arrives from this number, the data will be used to populate the agent’s prompt variables.
Only the most recent push for a phone number is used. Once a call consumes the data, it is marked as consumed and will not be used for subsequent calls. If the most recent push has already been consumed, the agent proceeds without personalization. Older pushes are never used as a fallback. Push new data to hydrate the next call.
Phone numbers are automatically normalized to E.164 format.
curl --request POST \
--url https://api.getstrada.com/api/call-personalization-webhook \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"phoneNumber": "+15551234567",
"data": {
"firstName": "John",
"policyNumber": "POL-12345",
"claimStatus": "Active"
}
}
'import requests
url = "https://api.getstrada.com/api/call-personalization-webhook"
payload = {
"phoneNumber": "+15551234567",
"data": {
"firstName": "John",
"policyNumber": "POL-12345",
"claimStatus": "Active"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
phoneNumber: '+15551234567',
data: {firstName: 'John', policyNumber: 'POL-12345', claimStatus: 'Active'}
})
};
fetch('https://api.getstrada.com/api/call-personalization-webhook', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.getstrada.com/api/call-personalization-webhook",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'phoneNumber' => '+15551234567',
'data' => [
'firstName' => 'John',
'policyNumber' => 'POL-12345',
'claimStatus' => 'Active'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.getstrada.com/api/call-personalization-webhook"
payload := strings.NewReader("{\n \"phoneNumber\": \"+15551234567\",\n \"data\": {\n \"firstName\": \"John\",\n \"policyNumber\": \"POL-12345\",\n \"claimStatus\": \"Active\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.getstrada.com/api/call-personalization-webhook")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"phoneNumber\": \"+15551234567\",\n \"data\": {\n \"firstName\": \"John\",\n \"policyNumber\": \"POL-12345\",\n \"claimStatus\": \"Active\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getstrada.com/api/call-personalization-webhook")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"phoneNumber\": \"+15551234567\",\n \"data\": {\n \"firstName\": \"John\",\n \"policyNumber\": \"POL-12345\",\n \"claimStatus\": \"Active\"\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true
}{
"error": "phoneNumber: phoneNumber is required"
}Authorizations
API Key authentication
Body
Customer phone number. Automatically normalized to E.164 format. US numbers are assumed for 10-digit inputs.
"+15551234567"
Key-value pairs of personalization data. Keys must match the variable names defined in your agent's prompt (e.g., firstName, policyNumber).
{ "firstName": "John", "policyNumber": "POL-12345", "claimStatus": "Active" }
Response
Data pushed successfully
Whether the data was stored successfully
true
Was this page helpful?