Skip to content
MotherBot
Core Features

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:
FieldTypeNotes
Phone NumberRequiredE.164 format (+12125551234). Primary unique identifier.
NameTextDisplay name shown in conversations and broadcast logs.
EmailEmailOptional — useful for cross-channel identification.
TagsArrayComma-separated labels for segmentation and filtering.
Opted InBooleanfalse means this contact is excluded from all broadcasts.
Last SeenDateTimeAuto-updated on every incoming message.
cf1 – cf10TextCustom 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.
1

Define your fields

Click Custom Fields in the Contacts toolbar. Enter a display label for each field slot you want to activate (e.g. cf1 → "Company Name", cf2 → "Invoice Number"). Leave unused slots blank. Save — the labels take effect immediately across the add/edit forms and the export.
2

Set values on contacts

Open any contact's edit dialog — defined custom field inputs appear below the standard fields. Values are saved per-contact.
3

Use in broadcasts

When mapping template variables, the From Contact dropdown includes all your defined custom fields. Selecting "Company Name" stores the token {{contact.cf1}} and resolves to each recipient's value at send time.
4

Use in chatbots

Custom field values are automatically injected into chatbot session variables. Use {{cf1}} in any chatbot message, question, or condition to reference the contact's custom field value.

Tip

Also pre-populated in chatbot sessions: {{contact_name}}, {{contact_phone}}, and {{contact_email}} — no "Ask Question" node needed for these.

Adding Contacts

1

Manual add

Click Add Contact in the Contacts toolbar. Enter phone (required), name, email, tags, and any defined custom field values. Best for individual contacts or testing.
2

CSV import

Click Import CSV. Your CSV must have a 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-002
After 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.

3

Auto-created from incoming messages

When someone messages your WhatsApp number for the first time, MotherBot automatically creates a contact with their phone number and WhatsApp display name. Enrich it with custom fields later.
4

API

Use 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-001

Tags

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

Including opted-out contacts in campaigns can get your Meta account flagged. MotherBot's audience filters always exclude them automatically.