Bindings & templates

A binding tells Envara: "When event X arrives for site Y, send WhatsApp template T to recipient R, filling each slot with these values."

Recipient strategies

  • customer — uses customer.phone_e164 from the payload.
  • site_recipients — sends to all active phones in the site's recipient list (good for internal alerts).
  • static_phone — a fixed E.164 number you type in.
  • field_path — pulls the phone from any dotted path in the payload (e.g. data.assignee_phone).
  • test — uses the site's test recipient.

Variable map

WhatsApp templates have positional slots like {{1}}, {{2}} in header / body / button-url. A variable map tells Envara what to put in each slot.

json
{  "header": {    "1": { "source": "field", "path": "site.name" }  },  "body": {    "1": { "source": "field", "path": "order.customer.first_name", "fallback": "Customer" },    "2": { "source": "field", "path": "order.number" },    "3": { "source": "expression", "expr": "total.with_currency" }  },  "button_url": {    "1": { "source": "field", "path": "order.order_url_customer" }  }}

VarSpec shapes

  • { source: "field", path: "...", fallback?: "..." } — pulls a dotted path from the payload.
  • { source: "static", value: "..." } — fixed string.
  • { source: "expression", expr: "...", fallback?: "..." } — built-in helper.

Expressions

  • customer.full_name — first + last name.
  • items.summary_shortname x qty, name x qty…
  • items.summary_lines — line-separated with prices.
  • total.with_currencyAED 199.00
  • date.today, date.now

Building bindings

You can build bindings two ways:

  1. From the dashboard — go to Notifications → New binding. The editor auto-completes paths based on events your site has already sent.
  2. Ask Eva (the AI assistant in the bottom-right) — "Set up an order.created notification for site X that sends template order_confirmation_v1 to the customer."

Template approval

WhatsApp templates must be approved by Meta before they can be sent. Drafts you create in the dashboard (or that Eva generates) live in the Templates page. Click Submit to Meta to request approval. Status (approved / rejected / paused) is polled hourly.