Contacts are the individual customer records in Galantis. Every contact is sourced from Shopify and kept current via webhook sync — when a customer’s data changes in Shopify, the change propagates to Galantis within seconds. On top of the Shopify data, Galantis enriches each contact with WhatsApp-specific information: message history, conversation threads, automation activity, and consent status. A contact’s profile is the single source of truth for everything Galantis knows about that customer — it is what campaign targeting, automation conditions, segment rules, and Inbox context all draw from.Documentation Index
Fetch the complete documentation index at: https://docs.digifist.com/llms.txt
Use this file to discover all available pages before exploring further.
What this covers
- All customer profile fields and their sources
- Related data available per contact
- How sync works and what triggers it
- The
exclude_from_galantisflag - Finding and reviewing a contact’s profile
Customer profile fields
- Identity
- WhatsApp Delivery
- Targeting & Consent
- Sync Metadata
| Field | Source | Purpose |
|---|---|---|
shopify_customer_id | Shopify | Links the Galantis contact record to the Shopify customer record |
first_name | Shopify | Display name — used in template variable mapping |
last_name | Shopify | Display name — used in template variable mapping |
email | Shopify | Contact info — available as a template variable |
customers/update webhook.Related data per contact
Beyond the profile fields, each contact’s record surfaces related data from across the platform: Order history (orders) — All Shopify orders associated with the customer, synced via the orders/create and orders/updated webhooks. Used in segment rules (total spent, order count, days since last order) and available as context in the Inbox conversation view.
Back-in-Stock subscriptions (subscriptions) — Any active or historical Back-in-Stock widget subscriptions the customer has submitted. Visible per contact to confirm subscription status for a specific variant.
Message history (messages) — All WhatsApp messages sent to and received from this customer across campaigns, automations, and Inbox conversations. Visible on the contact profile for full communication context.
Conversation threads (conversations) — All Inbox conversation threads for the customer, with their status (OPEN, PENDING, RESOLVED) and assigned agent.
List and segment membership — Which Customer Lists the contact belongs to and which Segments they currently match. Useful for confirming whether a customer should have been included or excluded from a recent campaign.
How sync works
Galantis maintains customer data through two mechanisms: Initial import — When the app is first installed, Galantis runs a full import of your existing Shopify customer base. This populates the contact database with all customers at the time of installation. Ongoing webhook sync — After the initial import, Galantis receives Shopify webhooks for every customer event:| Webhook | What it updates |
|---|---|
customers/create | Creates a new contact record |
customers/update | Updates profile fields, phone, tags, locale |
customers/delete | Removes the contact record |
customers/marketing_consent_updated | Updates marketing_state |
customer_tags/added | Adds tags to the contact record |
customer_tags/removed | Removes tags from the contact record |
Finding a contact’s profile
Navigate to Audience → Contacts and search by name, email, or phone number. The contact profile page shows all fields, related data, and a summary of recent message and automation activity. The contact profile is also surfaced contextually in the Inbox — when an agent opens a conversation, the customer’s Shopify data, order history, and consent status are visible in the sidebar without leaving the thread.Best practices
- Resolve
CUSTOMER_IS_MISSING_CALLING_CODEerrors at the source. Fix the phone number format in Shopify — Galantis will sync the corrected data via webhook. Attempting to fix it in Galantis directly is not the right approach since the Shopify record will overwrite the change on the next sync. - Use
synced_atto diagnose stale data. If a customer’s segment membership or consent status seems incorrect, checksynced_atto determine when the last sync occurred and whether a recent Shopify change has had time to propagate. - Review tag sync timing for automation conditions. Tag-based automation conditions (
CUSTOMER_TAG) evaluate the customer’s tags at the moment the condition node is reached — not at trigger time. A customer who gains or loses a tag while in a delayed flow will be evaluated against their tag state at condition evaluation, not at enrollment.
Related guides
- Segments — Using contact fields as segment rule conditions
- Consent & Opt-outs — How
marketing_stateis set and enforced - Inbox — Assignment & Routing — How contact context appears in Inbox conversations
- Support — Message Delivery — Resolving phone number format errors