Contacts
Import, organize, and segment your contact list — the foundation of every broadcast and chatbot interaction.
Contact Fields
Every contact has built-in fields plus up to 10 custom fields you define for your organization:| Field | Type | Notes |
|---|---|---|
| Phone Number | Required | E.164 format (+12125551234). Primary unique identifier. |
| Name | Text | Display name shown in conversations and broadcast logs. |
| Optional — useful for cross-channel identification. | ||
| Tags | Array | Comma-separated labels for segmentation and filtering. |
| Opted In | Boolean | false means this contact is excluded from all broadcasts. |
| Last Seen | DateTime | Auto-updated on every incoming message. |
| cf1 – cf10 | Text | Custom fields you define in Contacts → Custom Fields. |
Custom Fields (cf1–cf10)
Custom fields let you store business-specific data on contacts — invoice numbers, company names, plan tiers, order IDs, or anything else your templates or chatbots need.Define your fields
Set values on contacts
Use in broadcasts
{{contact.cf1}} and resolves to each recipient's value at send time.Use in chatbots
{{cf1}} in any chatbot message, question, or condition to reference the contact's custom field value.Tip
{{contact_name}}, {{contact_phone}}, and {{contact_email}} — no "Ask Question" node needed for these.Adding Contacts
Manual add
CSV import
phone column. Include custom fields using either the raw key (cf1, cf2, …) or the label you defined (case-insensitive).phone,name,email,tags,Company Name,Invoice Number
+12125551234,John Smith,john@acme.com,"vip,enterprise",Acme Corp,INV-001
+447911123456,Emma Jones,emma@co.uk,"trial",Widget Ltd,INV-002After you pick the file, the mapping screen shows every column in it next to the contact field it will be saved as, so you can correct a wrong guess before anything is imported. Set a column to Don’t import to leave it out.Same value for every contact. For a detail that is true of the whole file but isn’t a column in it, pick the field under “Same value for every contact” and type the value once — the city the list was collected in, a tag like webinar-2026, a language, or one of your custom fields. It is saved on every contact in that import. A field is taken either from a column or from what you type, never both, so each one disappears from the other list once it is used. Tags are the exception — a tag you type is added alongside the tags in your file. The phone number can never be set this way, since everyone needs their own.
If a contact with that phone number already exists, they are updated rather than duplicated. You choose on the same screen whether the file should add new contacts, update existing ones, or both, and whether a value from the file replaces what a contact already has or only fills in blanks. Tags are always added, never removed.
Auto-created from incoming messages
API
POST /api/whatsapp/contacts to create contacts programmatically, passing customFields: { cf1: "Acme", cf2: "INV-001" }.Exporting Contacts
Click Export to download the visible contacts as a CSV. The export includes all standard fields plus one column per defined custom field (using your label as the column header). Use this file as a template for future imports.name,phone,email,tags,opted_in,source,Company Name,Invoice Number
John Smith,+12125551234,john@acme.com,"vip,enterprise",true,import,Acme Corp,INV-001Tags
Tags are free-form labels for quick categorization and audience targeting:- Add tags manually in the contact's edit dialog, or via the chatbot 'Add Tag' action.
- Bulk-tag: select multiple contacts → Apply tag in the action bar.
- Filter the contact list by one or more tags.
- Use tags to define broadcast audiences — only contacts with the selected tag(s) receive the broadcast.
- Remove tags via chatbot, API, or manually.
Opt-out Management
MotherBot automatically handles opt-outs to keep you compliant with Meta's policies:- If a contact sends STOP (or a configured opt-out keyword), their Opted In flag is set to false.
- Opted-out contacts are excluded from all future broadcasts automatically.
- You can still receive and respond to messages from opted-out contacts — only outbound broadcast sending is blocked.
- Contacts can opt back in by messaging your number — the flag resets automatically.
- Never manually set Opted In = true for a contact who sent STOP — this violates WhatsApp policy.
Warning