Preview potential automation effects without applying any changes.
curl --request POST \
--url https://api.sendrealm.com/automation-effects/preview \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"operation": "ingest_event",
"input": {
"event": "<string>",
"contact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"email": "jsmith@example.com",
"external_id": "<string>",
"payload": {},
"occurred_at": "2023-11-07T05:31:56Z",
"idempotency_key": "<string>",
"contact": {
"fields": {}
}
}
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
operation: 'ingest_event',
input: {
event: '<string>',
contact_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
email: 'jsmith@example.com',
external_id: '<string>',
payload: {},
occurred_at: '2023-11-07T05:31:56Z',
idempotency_key: '<string>',
contact: {fields: {}}
}
})
};
fetch('https://api.sendrealm.com/automation-effects/preview', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sendrealm.com/automation-effects/preview"
payload = {
"operation": "ingest_event",
"input": {
"event": "<string>",
"contact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"email": "jsmith@example.com",
"external_id": "<string>",
"payload": {},
"occurred_at": "2023-11-07T05:31:56Z",
"idempotency_key": "<string>",
"contact": { "fields": {} }
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"data": {
"operation": "<string>",
"automation_effects": "suppress",
"read_only": true,
"events": [
{
"event": "<string>",
"source": "<string>",
"identity": "<string>",
"correlation": "<string>"
}
],
"matched_automations": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"version_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"potential_actions": [
{
"step_key": "<string>",
"type": "<string>"
}
]
}
],
"resumable_runs": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"automation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"wait_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"deduplicated": true,
"exact": false,
"evaluated_at": "2023-11-07T05:31:56Z"
},
"status": 123,
"metadata": {
"total": 123,
"items": 123,
"limit": 123,
"after": "<string>",
"next": "<string>",
"has_more": true
}
}{
"status": 123,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<string>",
"issues": [
{
"code": "<string>",
"path": "<string>",
"message": "<string>"
}
]
}
}{
"status": 123,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<string>",
"issues": [
{
"code": "<string>",
"path": "<string>",
"message": "<string>"
}
]
}
}{
"status": 123,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<string>",
"issues": [
{
"code": "<string>",
"path": "<string>",
"message": "<string>"
}
]
}
}Workflow Helpers
Preview Automation Effects
Estimate automation starts and resumes without mutating data or delivering messages.
POST
/
automation-effects
/
preview
Preview potential automation effects without applying any changes.
curl --request POST \
--url https://api.sendrealm.com/automation-effects/preview \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"operation": "ingest_event",
"input": {
"event": "<string>",
"contact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"email": "jsmith@example.com",
"external_id": "<string>",
"payload": {},
"occurred_at": "2023-11-07T05:31:56Z",
"idempotency_key": "<string>",
"contact": {
"fields": {}
}
}
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
operation: 'ingest_event',
input: {
event: '<string>',
contact_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
email: 'jsmith@example.com',
external_id: '<string>',
payload: {},
occurred_at: '2023-11-07T05:31:56Z',
idempotency_key: '<string>',
contact: {fields: {}}
}
})
};
fetch('https://api.sendrealm.com/automation-effects/preview', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sendrealm.com/automation-effects/preview"
payload = {
"operation": "ingest_event",
"input": {
"event": "<string>",
"contact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"email": "jsmith@example.com",
"external_id": "<string>",
"payload": {},
"occurred_at": "2023-11-07T05:31:56Z",
"idempotency_key": "<string>",
"contact": { "fields": {} }
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"data": {
"operation": "<string>",
"automation_effects": "suppress",
"read_only": true,
"events": [
{
"event": "<string>",
"source": "<string>",
"identity": "<string>",
"correlation": "<string>"
}
],
"matched_automations": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"version_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"potential_actions": [
{
"step_key": "<string>",
"type": "<string>"
}
]
}
],
"resumable_runs": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"automation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"wait_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"deduplicated": true,
"exact": false,
"evaluated_at": "2023-11-07T05:31:56Z"
},
"status": 123,
"metadata": {
"total": 123,
"items": 123,
"limit": 123,
"after": "<string>",
"next": "<string>",
"has_more": true
}
}{
"status": 123,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<string>",
"issues": [
{
"code": "<string>",
"path": "<string>",
"message": "<string>"
}
]
}
}{
"status": 123,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<string>",
"issues": [
{
"code": "<string>",
"path": "<string>",
"message": "<string>"
}
]
}
}{
"status": 123,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<string>",
"issues": [
{
"code": "<string>",
"path": "<string>",
"message": "<string>"
}
]
}
}This read-only endpoint requires
resources.read and an explicitly selected project. Supply the typed operation and input for an event, contact, audience membership, or topic preference change. Inspect matched_automations and resumable_runs; the result is an estimate (exact: false) and does not authorize or reserve a later mutation. Personal-key mutations default to suppression; explicitly triggering live effects also requires automations.trigger and current role access.Authorizations
Integration key for backend workloads, or a scoped personal key (sr_user_) for account discovery and supported project operations. MCP accepts only personal keys.
Headers
Explicit project context. Required for personal-key project resource calls; integration keys retain their configured default. MCP clients supply project_id in each tool call instead.
Body
application/json