Templates · Published 2026-09-28 · AgentiSend team
Shipping update
Tell a customer their order has shipped, with the carrier and a tracking link.
Tell a customer their order has shipped, with the carrier and a tracking link.
Variables
Every placeholder is required. A send that omits one is refused with that name, rather than going out with a blank.
first_name(string, required). The customer’s first name.order_number(string, required). Your order number.carrier(string, required). Who is delivering it.tracking_number(string, required). The carrier’s tracking number.expected_delivery(string, required). The expected delivery date, formatted for the reader.tracking_url(string, required). An https link to the carrier’s tracking page.
Rendered with the example values
These values are samples. They are not an account on AgentiSend.
Subject: Order 10571 has shipped
<p>Hi Ada,</p>
<p>Your order 10571 is on its way.</p>
<p>Carrier: Royal Mail<br>
Tracking number: RM123456785GB<br>
Expected delivery: Thursday 1 October</p>
<p><a href="https://example.com/track/RM123456785GB">Track the parcel</a></p>Hi Ada,
Your order 10571 is on its way.
Carrier: Royal Mail
Tracking number: RM123456785GB
Expected delivery: Thursday 1 October
Track the parcel (https://example.com/track/RM123456785GB)Create the draft
POST /templates and the create_template tool take this body. The draft does not send until it is published.
{
"name": "Shipping update",
"subject": "Order {{order_number}} has shipped",
"content": {
"mode": "markdown",
"source": "Hi {{first_name}},\n\nYour order {{order_number}} is on its way.\n\nCarrier: {{carrier}}\nTracking number: {{tracking_number}}\nExpected delivery: {{expected_delivery}}\n\n[Track the parcel]({{tracking_url}})"
},
"variables": [
{
"name": "first_name",
"type": "string",
"required": true
},
{
"name": "order_number",
"type": "string",
"required": true
},
{
"name": "carrier",
"type": "string",
"required": true
},
{
"name": "tracking_number",
"type": "string",
"required": true
},
{
"name": "expected_delivery",
"type": "string",
"required": true
},
{
"name": "tracking_url",
"type": "string",
"required": true
}
]
}Publish it
Call publish_template with the id POST /templates returned. Publishing again makes the next version. A version that already went out does not change.
{
"name": "publish_template",
"arguments": {
"template_id": "<the id POST /templates returned>"
}
}Send it
Create the draft with the body above, publish it, then send with template_id and template_values. The rules are in Templates. The three calls, including a render that does not send, are in How do I send an email from a template. The next starter is Approval request.