Template reference
Render typed request bodies and URL-safe paths from simulation entities.
Rendering rules
Templates walk strings, objects, and arrays recursively. A string containing exactly one placeholder keeps the referenced value’s type. A placeholder embedded in other text becomes a string.
{
"durationMinutes": "{{appointment.durationMinutes}}",
"summary": "Visit for {{profile.givenName}} at {{appointment.startsAt}}"
}The first value renders as a number. The second renders as text. Missing values are omitted from objects when used as exact placeholders and become an empty string when interpolated.
Available context
| Capability | Context |
|---|---|
actor.create | profile, now |
booking.create | profile, appointment including computed endsAt, remoteActorId, now |
booking.update | profile, appointment including endsAt, remoteBookingId, status, now |
booking.cancel | remoteBookingId, reason, now |
message.send | profile, remoteActorId, channel, subject, body, now |
Dot paths can reach nested fields such as {{profile.careContext.riskLevel}} or {{appointment.durationMinutes}}.
Examples
URL paths
"path": "/customers/{{remoteActorId}}/appointments/{{remoteBookingId}}"Path placeholders are URL encoded automatically.
Nested request body
"body": {
"patient": {
"externalId": "{{profile.id}}",
"contact": {
"email": "{{profile.email}}",
"phone": "{{profile.phone}}"
}
},
"tags": ["praxis", "{{profile.archetype}}"]
}Remote IDs
remoteIdPath is a dot path into the endpoint response. It defaults to id. Configure it whenever the remote API nests created records.
// Response
{ "customer": { "id": "cus_123" } }
// Endpoint config
{ "remoteIdPath": "customer.id" }