Vai al contenuto principale

Contacts and groups

Your directory: contacts, labels and custom fields, groups for campaigns, CSV import and export, and the opt-out list that protects the people who said STOP.

The directory is the list of the people you send SMS to: a number, a name, a company, labels and custom fields. Groups gather contacts so you can reach them at once, with a campaign or a quick send. The opt-out list records the numbers that asked to stop receiving your messages, and the gateway enforces it on every send.

Everything stays on your gateway. The directory is never sent to us or to anyone else.

Contacts

The Contacts screen lists your directory.

Control Use
Search a contact Find a contact by name, number or company
Label, Group, Opted out filters Narrow the list
New contact Create a contact by hand
Import a CSV Import a file, see Import a CSV file
Export as CSV / Export as JSON Download the contacts the current filters show

The table shows each Contact, its Number, its Groups, its Labels and its State (Opted out or not). From each row you can edit, delete, and opt out or opt back in.

The fields of a contact

Field Rules
Number in international format Required, + then the country code, for example +261341234567. One contact per number
First name, Last name Up to 120 characters each
Company Up to 160 characters
Email address Up to 254 characters
Internal notes Up to 2,000 characters. For your team only, never sent
Labels, comma separated Up to 24 labels of 40 characters. Use them to sort and filter: "vip", "retail", "2026 fair"
Custom fields Up to 32 fields of your own (for example "loyalty card", "city"), 60 characters for the name and 500 for the value. They come from a CSV import or from the API, and the contact panel of a conversation shows them

The fields of a contact can be inserted into a message through the variables of templates: "Hello {firstname}" becomes "Hello Rina" for each recipient.

Two contacts cannot share a number: creating a second one answers "This contact already exists."

Deleting a contact removes it from the directory and from its groups. The messages already exchanged stay in the conversations, and an opt-out stays in force: deleting the contact of someone who said STOP does not allow you to write to them again.

Groups

The Groups screen manages your distribution lists. A group is what a campaign targets, and what the Contact group mode of quick send uses.

Action Effect
New group Group name (up to 80 characters, unique regardless of case) and Description (up to 500)
Edit the group Rename it or change its description
Open a group See its members, Add contacts, or Remove from the group
Delete this group The group disappears, its contacts stay in the directory

A contact can belong to several groups. A contact who opted out stays in its groups, but campaigns and quick sends skip it.

A group attached to a running or scheduled campaign cannot be deleted: "This group is attached to a running or scheduled campaign." Wait for the campaign to end first.

You can also file a contact in a group from the contact panel of a conversation (Add to a group), or at import time.

Import a CSV file

Import a CSV fills the directory from a spreadsheet or from another tool. Nothing is saved until you confirm: the dialog first analyses the file and shows you what will happen.

  1. Choose the file. A CSV file with a header row, up to 32 MB. The separator (comma, semicolon, tab or vertical bar) is detected automatically, so a file saved by a spreadsheet in any language works.
  2. Check the Column mapping. The dialog recognises the usual column names, in several languages: "phone", "mobile", "telephone", "numero" for the number; "first name", "prenom"; "last name", "nom"; "company", "societe"; "email", "courriel"; "notes"; "tags", "labels". Correct any column if needed, or set it to Ignore; the preview updates. A column nothing recognises becomes a custom field under its own name, up to 32. The number column is required.
  3. Choose what to do with Numbers already present:
    • Keep the existing contact (default): a contact already in the directory is left untouched;
    • Update with non-empty columns: the file completes the existing contact, and an empty cell never erases what you typed by hand.
  4. Add to group (optional): every imported contact, new or already present, joins that group. Handy to import a list straight into the group a campaign will target.
  5. Read the Import summary: rows read, to create, to update, already present and kept, rejected, and the First rows, as they will be read. Rejected rows lists the lines refused, with the reason: Missing number, Invalid number, Duplicate in the file, Malformed row.
  6. Click Import N contacts.

Numbers must be in international format (+261...). Duplicates are detected on the number once normalised: +261 34 12 345 67 and +261341234567 are the same contact. A labels column may hold several labels separated by commas, semicolons or vertical bars.

Importing a number that is on the opt-out list does not lift the opt-out.

Opt-out

A person who asks to stop receiving your SMS must stop receiving them. The gateway takes care of it.

Automatic opt-out. When a correspondent answers with a stop word, the number is opted out at once. The message must be the stop word alone, or followed by a word such as "SMS" or "ALL"; upper or lower case, accents and punctuation do not matter. Recognised words:

Stop words May be followed by
STOP, STOPALL, STOPPER, ARRET, ARRETER, DESABONNER, DESABONNEMENT, DESINSCRIRE, DESINSCRIPTION, UNSUBSCRIBE, OPTOUT, QUIT, CANCEL, END, FIN SMS, ALL, TOUT, TOUS, TOUTES, MESSAGE, MESSAGES, TODO

"STOP", "Stop." and "stop sms" opt out; "Please don't stop" does not. This list is deliberately narrow: it follows what carriers publish, so a customer who writes "I can't stop smiling" is not opted out by mistake. To react to other words, add a rule in Automation.

Manual opt-out. In Contacts, Opt out asks for an optional Reason for the opt-out and applies at once. The contact panel of a conversation offers the same button, without the reason.

What an opt-out does:

  • every new send to the number is refused, from the dashboard, a campaign or the API, with "This number has opted out.";
  • messages already queued for that number are Cancelled instead of leaving;
  • campaigns leave the number out when they start, so their totals are real;
  • a quick send to a group leaves it out before sending.

The opt-out belongs to the number, not to the contact. A STOP from a number that is not in your directory is recorded all the same, and deleting a contact does not lift it. Only Opt back in lifts it: do it only when the person asked for it. For a number that is not in your directory, create its contact first: it appears Opted out, and you can then opt it back in. Changing the number of a contact does not carry its opt-out along: the opt-out stays with the old number, and the contact takes the state of its new number.

The Opted out filter of Contacts lists the opted-out contacts.

Options

Option Where Default Allowed values Effect
Number Contact form; API phone Required International format, unique Identifies the contact; the opt-out follows it
Name, company, email, notes Contact form Empty See the fields Display, search, template variables
Labels Contact form, import; API tags None Up to 24, 40 characters Label filter, sorting
Custom fields Import, API customFields None Up to 32; name 60, value 500 characters Template variables, contact panel
Groups Groups screen, contact panel, import; API groupIds None Any number Targets of campaigns and quick sends
Opted out Opt out / Opt back in; API POST and DELETE /contacts/{contactId}/blacklist No Yes or no, with an optional reason Refuses every send, cancels queued messages, removes from campaign audiences
Numbers already present Import dialog; API dedupe Keep the existing contact (skip) skip, update Whether the import completes existing contacts
Add to group Import dialog; API groupId No group A group Files every imported contact in it
Column mapping Import dialog; API map (field=column) Deduced from the headers phone, firstName, lastName, company, email, notes, tags, custom:<name> Which column fills which field
Separator Detected; API delimiter Detected from the first line Comma, semicolon, tab, vertical bar How the file is split
Preview Automatic in the dialog; API dryRun=true Preview first true or false Runs the whole import without writing anything

API

Method and path Use
GET /contacts List and search the directory, filter by label, group or opt-out
POST /contacts Create a contact
GET, PATCH, DELETE /contacts/{contactId} Read, change, delete a contact
POST /contacts/{contactId}/blacklist Opt the contact's number out
DELETE /contacts/{contactId}/blacklist Opt it back in
POST /contacts/import Import a CSV file
GET /contacts/export Export the filtered directory, as CSV or JSON
GET, POST /groups List, create groups
GET, PATCH, DELETE /groups/{groupId} Read, rename, delete a group
GET, POST /groups/{groupId}/contacts List members, add up to 500 contacts per call
DELETE /groups/{groupId}/contacts/{contactId} Remove a contact from a group

Troubleshooting

Symptom What to check
Many rows rejected as Invalid number The numbers lack the country code. Add it in the spreadsheet (+261 in front of 034..., dropping the leading 0)
The number column is not recognised Pick it by hand in Column mapping
"This file is larger than 32 MB." Split the file in several parts
"This contact already exists." Another contact has this number: search for it and edit it instead
A group cannot be deleted A running or scheduled campaign uses it
A contact receives nothing Is it Opted out? Check the State column
Someone who said STOP must be written to again Only if they asked for it: Opt back in on their contact

Cerca nella documentazione

Digita alcune parole, poi scegli una pagina.