Guides
Contacts
Contact management, import, custom fields, and GDPR compliance.
Contacts
Contacts represent the people you're reaching out to. Each contact belongs to an organization and can be assigned to multiple campaigns.
Creating Contacts
# Via CLI
Pipelime contact create \
--email john@example.com \
--first-name John \
--last-name Doe \
--company-name "Pipelime" \
--title "VP Engineering"
# Via API
curl -X POST https://app.Pipelime.io/api/contacts \
-H "Authorization: Bearer ki_your_key" \
-H "Content-Type: application/json" \
-d '{
"email": "john@example.com",
"firstName": "John",
"lastName": "Doe",
"companyName": "Pipelime",
"title": "VP Engineering"
}'Custom Fields
Contacts support arbitrary custom fields stored as JSON:
Pipelime contact create \
--email john@example.com \
--first-name John \
--custom-fields '{"industry": "SaaS", "employee_count": 150}'Custom fields are available as template variables: {{industry}}, {{employee_count}}.
CSV Import
Import contacts from CSV files:
Pipelime contact import --file contacts.csv --campaign-id <campaign-id>CSV Format
email,firstName,lastName,companyName,title
john@example.com,John,Doe,Pipelime,VP Engineering
jane@example.com,Jane,Smith,Beta Inc,CTODuplicate Handling
During import, duplicates are detected by email address. Existing contacts are updated with new field values.
Assigning to Campaigns
Pipelime campaign add-contacts <campaign-id> \
--contact-ids cont_123,cont_456Contact Lifecycle
| Status | Description |
|---|---|
active | Available for campaigns |
bounced | Email bounced, auto-blocklisted |
unsubscribed | Opted out via unsubscribe link |
blocklisted | Manually or automatically blocked |
GDPR Compliance
Data Export
Export all data for a contact:
Pipelime contact export --contact-id cont_123 --format jsonHard Delete
Permanently delete a contact and all associated data:
Pipelime contact delete --contact-id cont_123 --hard