Contacts

How EngageApp models your end-users as contacts, the fields they carry, and the ways to add them.

A contact is one of your end-users. Contacts are the audience of every campaign, and their fields power both segmentation and template merge fields.

Contact fields

Each contact carries a standard set of fields:

  • external_id — your own stable identifier for the contact. EngageApp uses it to sync and identify the same person across imports, API calls, and SDK sessions.
  • Email and phone — used by the email, SMS, and WhatsApp channels.
  • First name and last name.
  • Custom attributes — arbitrary key/value data stored as JSON (e.g. plan, signup date, lifetime value).
  • Subscribed flag — whether the contact currently consents to receive messages.
  • Timezone — used to schedule and localize sends.

Contacts can also register one or more devices to receive push notifications.

Adding contacts

There are three ways to get contacts into EngageApp:

  • CSV import — upload and map a spreadsheet under Contacts → Import. See Importing contacts.
  • Public API — call POST /api/v1/public/contacts to batch upsert contacts from your backend.
  • In-app SDK — call the SDK's identify method to create or update the current contact.

The contact profile

Open any contact to see their full profile: current attributes, their event history, and their campaign activity (which campaigns they were enrolled in and what was sent). This is the fastest way to debug why a contact did or did not receive a message.

Next steps