Contacts

Audience

Contacts

Your Contacts list is everyone Sendcore can market to: synced from your store, captured by forms and the lead-intake API, or added by hand. Here you check subscription status, open a customer's profile, and run bulk actions.

On this page7 sections

Where contacts come from#

  • Store: customers synced from Shopify or WooCommerce.
  • Sendcore: added manually, via CSV or Excel import, signup forms, or the lead-intake API.
  • Both: a store customer who also matches a Sendcore contact (deduplicated by email).

The cards at the top show total contacts, subscribers (with consent), and new contacts in the last 30 days. They update as your store, imports and forms change the audience, and Sendcore recounts the whole audience once an hour, so a figure that looks off corrects itself within the hour.

Subscription status#

  • Subscribed: gave marketing consent; can receive campaigns.
  • Non-subscribed: a customer with no marketing consent yet.
  • Unsubscribed: opted out; Sendcore never emails them.

You can only email subscribers

Sendcore sends to subscribed contacts only. That's why your subscriber count is usually lower than your total customer count: the difference is customers who never opted in.

Next to the email address the list shows the contact's Phone number and one consent badge per channel: Email, SMS and WhatsApp, not whether Sendcore can message them there, only the consent you hold. Each badge reads Subscribed, Non-subscribed or Unsubscribed. A dash means the contact has no phone number, so there is nothing to ask consent for on that channel.

  • Email: the marketing consent Sendcore holds, the one the Subscription status section describes.
  • SMS: for a Shopify customer, the SMS marketing consent your Shopify admin holds, read live from the store and not a copy Sendcore keeps; for a contact migrated from Omnisend, the SMS status Omnisend held at migration time.
  • WhatsApp: recorded only when the contact gives it explicitly. No store, import or integration fills it in today, so a contact with a phone number reads Non-subscribed until then.

A phone number is not consent

A number in a CSV, in your store or in an API request never subscribes anyone to SMS or WhatsApp: the contact stays Non-subscribed on those channels until an explicit consent is recorded. SMS and WhatsApp campaigns are not available yet; the columns show today how much of your audience you could reach when they are.

Add a single contact#

  1. On Contacts click Add contact → Add a single contact.
  2. Enter the email (required) and optional name/phone.
  3. Save. If a welcome automation is active, the new contact is enrolled.

Bulk actions#

Select rows (or “select all”), open Actions, and:

  • Convert to subscribed: mark selected non-subscribed contacts as subscribed (you confirm you have permission).
  • Add a tag: apply a tag to the selection (see Tags).
  • Unsubscribe: opt selected contacts out.
  • Delete: permanently remove the selected contacts (you confirm first; store customers re-sync from your store, so deletion is mainly for imported lists).

The same menu is on every segment's page, for its members: see Act on the contacts in a segment.

With the AI assistant and MCP#

The assistant in the chat bubble, and any agent connected over MCP, uses the same audience actions: create_contact, add_contact_tag, remove_contact_tag, delete_audience_tags, set_contact_consent and delete_contacts. set_contact_consent with subscribe is the Convert to subscribed button: it is an explicit consent change and it clears the suppression list, so the agent asks you before it runs. An import cannot do that. See Import & export.

The contact profile#

Click any contact to open their profile: lifetime and Sendcore-attributed revenue, orders, channels, address, tags, segment memberships, and a timeline of store activity. Profiles open for store customers and for local contacts imported via CSV, Excel or the API.

Under Customer details every property Sendcore holds for the person is listed: the standard fields (email, phone, birthday, address, Gender) always, blank when unknown, then every custom property under the name you gave it: the answers of a signup form, the extra columns of an import, what an integration or the contacts API sent. A Genere / Gender column or form field lands on the standard Gender row whatever the door it came through.

The Lifecycle stage badge in the header (Recent, Active, Lapsing, Lapsed customer, or Lead) follows the same rule as Customer breakdown: the age of the customer's last order.

Next steps