Contact management
Create, update, list, and delete contacts with name, phone, source, lead stage, custom attributes, and opted_in flag.
WhatsApp CRM
Wavy's CRM layer is not a generic contact database with a WhatsApp plugin. Contacts, conversations, lead stages, segments, and tags are part of the same data model that the messaging, campaign, and automation systems use. A contact is created when they first message your business number, when you import them via CSV, when you create them manually, or when they are synced from Airtable. Every conversation is linked to a contact, every campaign targets a segment of contacts, and every automation rule evaluates a contact's message history.
How the CRM layer works
This is the real contact and conversation model in the backend — not a generic CRM feature list.
What you need
The core CRM is available without external providers. Airtable sync and AI summaries have additional requirements.
LLM_API_KEY set server-side. Without it, Copilot returns a not-configured response and the summary field remains empty.Safeguards
opted_in field and campaign workers recheck it. The current create/import defaults require hardening so a new record is not mistaken for documented consent.name, phone, and lead_stage. Rows without a phone number and duplicate phone numbers are skipped without a per-row error report.CRM capabilities
Create, update, list, and delete contacts with name, phone, source, lead stage, custom attributes, and opted_in flag.
Import expected CSV columns; rows without phone numbers and duplicates are skipped. The export endpoint requires authenticated API access.
Filter contacts by supported lead-stage, opt-in, and source criteria. Campaign recipients are resolved at campaign creation time.
Every message is linked to a contact through a conversation. The inbox API manages assignment, status, tags, and bot handoff.
Upsert contacts to a server-configured Airtable base. One-directional, not a per-workspace OAuth connection.
When an LLM key is configured, Copilot can summarise conversations and suggest replies. Without it, the feature degrades explicitly.
Questions
No. There is no third-party CRM integration. CRM data — contacts, segments, conversations, lead stages — lives in Wavy's workspace-scoped tables. The only external sync path is Airtable, which is a one-directional upsert to a server-configured base.
Yes. The core CRM — contacts, segments, lead stages, and attributes — works from the workspace database without any Meta configuration. Inbound contact creation requires a webhook, but manual creation and CSV import do not.
When a new phone number sends a message to your business number, the webhook receiver creates a contact record with that phone number and starts a conversation. This requires a configured and verified Meta webhook.
No. The sync upserts contacts to a server-configured Airtable base. It is one-directional and does not sync conversations or campaign data. It is also not a per-workspace OAuth connection — the API key and base ID are server settings.
No. Summaries are generated by AI Copilot, which requires an LLM key configured server-side. Without it, Copilot returns a not-configured response and the summary field remains empty. No fabricated summary is produced.
Yes. The lead_stage field is a free-text string, not a fixed funnel. You can set it to any value — New Lead, Qualified, Negotiation, Won, Lost — through the contacts API or CSV import.
Contacts, segments, conversations, and lead stages are part of the same model as messaging and campaigns. No third-party CRM sync — just workspace-scoped data you control.