orgId that can switch tenants.
Search and browse
UselistContacts for both browsing and free-text search. Pass query to match names, summary text, phone numbers, email addresses, or document identities. Matching is case- and accent-insensitive.
nextCursor using the same query, sort, and filters. See Pagination.
Read a contact and its timeline
getContact returns the contact, its identities and facts, and the first page of its conversation timeline. Set timelineLimit to control that embedded page and use timelineCursor to request the next one.
This keeps the contact and its recent activity in one read. There is no separate public timeline operation.
Import a remote CSV
importContacts accepts two inputs:
csvUrl: a direct HTTPS URL to a CSV file;fieldMapper: the exact CSV headers that map to Contact fields.
phone, email, or document—is required. Each source column can map to only one field. Keys inside facts are active Contact Definition identifiers; their values are CSV headers.
202 Accepted with an importId and status: "queued". A durable Workflow downloads and validates the file, then imports at most 500 rows and 2 MB. Existing contacts are matched within the organization by normalized phone, email, or document identity; ambiguous matches are not guessed.
The source URL must return the CSV directly without redirects and remain available while the Workflow starts. Keep the
importId for support and request correlation.Merge duplicates
UsemergeContacts only after choosing one primary and one secondary Contact. The operation moves compatible identities and facts to the primary Contact, redirects owned relationships, and retires the secondary Contact. An identity conflict returns 409 instead of choosing an owner implicitly.