Customer Data Platform
Contacts, custom fields & lists
The contact profile: standard and custom fields, CSV import, deduplication, and how lists differ from segments.
Everything in WeZend hangs off the contact — one profile per human, holding identifiers (email, phone), attributes, consent state, event history, messages and scores.
Standard + custom fields
Contacts ship with the standard fields you'd expect (name, email, phone, country, language…). Everything else is a custom field you define once:
curl -X POST https://api.wezend.com/v1/contacts/fields \
-H "X-API-Key: $WEZEND_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "key": "loyalty_tier", "type": "text", "label": "Loyalty tier" }'
Types: text, number, date, boolean. Once defined, the field is available everywhere — in template variables ({{loyalty_tier}}), in the segment builder, on the contact card in the dashboard, and in CSV imports.
Creating & updating
# Create
curl -X POST https://api.wezend.com/v1/contacts \
-H "X-API-Key: $WEZEND_API_KEY" -H "Content-Type: application/json" \
-d '{ "email": "anna@example.com", "phone": "+4512345678", "first_name": "Anna", "loyalty_tier": "gold" }'
# Update (partial — only the fields you send change)
curl -X PATCH https://api.wezend.com/v1/contacts/c_123 \
-H "X-API-Key: $WEZEND_API_KEY" -H "Content-Type: application/json" \
-d '{ "loyalty_tier": "platinum" }'
Contacts are matched on email/phone, so importing the same person twice updates rather than duplicates.
CSV import
Audience → Contacts → Import (or POST /v1/contacts/import). Upload the file, map your columns to fields (unmapped columns can become new custom fields on the spot), choose the target list, and confirm. Imports run in the background with a progress indicator and a per-row error report — a bad phone number on row 3,481 doesn't kill the other 50,000 rows.
Lists vs. segments — when to use which
- A list is static: contacts are in it because you put them there (import, form signup, manual add). Membership only changes when something adds/removes them.
- A segment is live: a rule ("spent > €500 AND inactive 30 days") that contacts flow in and out of automatically as their data changes.
Rule of thumb: lists for provenance ("Spring fair leads 2026"), segments for state ("currently at churn risk"). Campaigns and journeys accept both.
One platform. Every customer interaction.
Replace your patchwork of messaging APIs, CDP and automation tools with a single engagement platform built for scale.
No credit card required · EU data residency · 99.99% uptime SLA