Skip to content

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.