Personalisation

Put each contact's own details in a broadcast, with fallbacks.

Personalisation puts each contact's own details into a broadcast. Use built-in fields like {{firstName}} and {{email}}, plus your own variables such as {{company}}, {{plan}} or {{registrationCode}}.

How it works

  1. Register variables on the contact book. Add the names you want to use, such as company or plan.
  2. Store values on each contact. Save them in the console, by CSV import or through the API.
  3. Use the variables in a broadcast. Choose that contact book for the broadcast and put the variables in the subject or the body.
  4. Send. Notix fills in each contact's own value when it renders the email.

Variables you can use

These built-in variables are always there in a broadcast:

  • {{email}}
  • {{firstName}}
  • {{lastName}}
  • {{notix_unsubscribe_url}}

Your own variables come from the contact book's variable list.

Every broadcast must have an unsubscribe link. Use {{notix_unsubscribe_url}}, which is different for each person, as the link:

<a href="{{notix_unsubscribe_url}}">Unsubscribe</a>

Register a variable on the contact book before you use it in a broadcast. Variable names may contain only letters, numbers and underscores.

Set it up in the console

  1. Add variables to the contact book

    Open Contacts. When you create a book with + New, list your variables under Variables, separated by commas:

    company, plan, registrationCode
    

    For a book you already have, use Edit in the book's More actions menu.

  2. Add values to your contacts

    Save a value for each variable on each contact. You can type it in the contact editor, import it as a CSV column with the same name, or send it through the API in properties.

    A contact book whose table shows contacts with their custom propertiesA contact book whose table shows contacts with their custom properties
    A contact book. Each contact holds its own values for the book's variables.
  3. Put the variables in the broadcast

    Open or create a broadcast and choose the contact book that holds the variables. Then use them in the subject or the body:

    Subject: Welcome to {{company}}
    
    Hi {{firstName}},
    
    You are on the {{plan}} plan.
    Your registration code is {{registrationCode}}.
    

    The broadcast editor suggests the book's variables as you type.

Before you send, the review screen checks every contact. If some have no value for a variable the email uses, it says how many. See Broadcasts.

A contact with these values:

{
  "email": "jane@example.com",
  "firstName": "Jane",
  "lastName": "Doe",
  "properties": {
    "company": "Acme",
    "plan": "Pro",
    "registrationCode": "WELCOME-2026"
  }
}

gets "Welcome to Acme" as the subject.

Fallback values

If a value might be empty, give a fallback:

Hi {{firstName,fallback=there}},

This shows there when the contact has no first name.

Through the API

Create a contact book with variables:

curl -X POST https://app.usenotix.dev/api/v1/contactBooks \
  -H "Authorization: Bearer $NOTIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Customers",
    "variables": ["company", "plan", "registrationCode"]
  }'

Add a contact with values:

curl -X POST https://app.usenotix.dev/api/v1/contactBooks/cb_123/contacts \
  -H "Authorization: Bearer $NOTIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "jane@example.com",
    "firstName": "Jane",
    "properties": {
      "company": "Acme",
      "plan": "Pro",
      "registrationCode": "WELCOME-2026"
    }
  }'

Create a broadcast that uses them:

curl -X POST https://app.usenotix.dev/api/v1/broadcasts \
  -H "Authorization: Bearer $NOTIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Welcome campaign",
    "from": "Acme <hello@acme.com>",
    "subject": "Welcome to {{company}}",
    "contactBookId": "cb_123",
    "html": "<p>Hi {{firstName,fallback=there}}, your plan is {{plan}}.</p><p><a href=\"{{notix_unsubscribe_url}}\">Unsubscribe</a></p>"
  }'

See Create a contact book, Add a contact and Create a broadcast.

Good habits

HabitWhy it helps
Register variables before you importCSV columns and API properties line up with the book.
Keep variable names short and plainEmails are easier to read and change later.
Use fallbacks for optional valuesNo awkward gaps when a contact is missing a value.
Test with a small segment firstYou see the filled-in email before the whole list does.
Open in ClaudeOpen in ChatGPT