Sendio.Contacts (sendio v1.1.0)
Manage contacts in Sendio.
Note: Contact endpoints support lookup by email OR id (e.g., contact_id can be
"user@example.com" or "ct_123").
Summary
Functions
Adds a contact to a segment.
Creates a new contact.
Gets a contact by ID or email.
Lists all contacts.
Lists all segments for a contact.
Lists all topic subscriptions for a contact.
Removes a contact.
Removes a contact from a segment.
Updates a contact.
Updates topic subscriptions for a contact.
Functions
add_to_segment(client \\ Sendio.client(), contact_id, segment_id)
@spec add_to_segment(Sendio.Client.t(), String.t(), String.t()) :: Sendio.Client.response(Sendio.Empty.t())
Adds a contact to a segment.
create(client \\ Sendio.client(), opts)
@spec create(Sendio.Client.t(), Keyword.t()) :: Sendio.Client.response(Sendio.Contacts.Contact.t())
Creates a new contact.
Options
:email- The contact's email address (required):first_name- The contact's first name:last_name- The contact's last name:unsubscribed- Whether the contact is unsubscribed:properties- Object of custom property key-value pairs:segments- Array of segment IDs to add contact to:topics- Array of topic subscriptions with:idand:subscription(opt_in/opt_out)
get(client \\ Sendio.client(), contact_id)
@spec get(Sendio.Client.t(), String.t()) :: Sendio.Client.response(Sendio.Contacts.Contact.t())
Gets a contact by ID or email.
The contact_id can be a contact ID (e.g., "ct_123") or an email address.
list(client_or_opts \\ [])
@spec list(Keyword.t()) :: Sendio.Client.response(Sendio.List.t(Sendio.Contacts.Contact.t()))
Lists all contacts.
Options
:segment_id- Filter contacts by segment ID
list(client, opts)
@spec list(Sendio.Client.t(), Keyword.t()) :: Sendio.Client.response(Sendio.List.t(Sendio.Contacts.Contact.t()))
list_segments(client \\ Sendio.client(), contact_id)
@spec list_segments(Sendio.Client.t(), String.t()) :: Sendio.Client.response(Sendio.List.t(Sendio.Segments.Segment.t()))
Lists all segments for a contact.
list_topics(client \\ Sendio.client(), contact_id)
@spec list_topics(Sendio.Client.t(), String.t()) :: Sendio.Client.response(Sendio.List.t(Sendio.Contacts.TopicSubscription.t()))
Lists all topic subscriptions for a contact.
remove(client \\ Sendio.client(), contact_id)
@spec remove(Sendio.Client.t(), String.t()) :: Sendio.Client.response(Sendio.Empty.t())
Removes a contact.
remove_from_segment(client \\ Sendio.client(), contact_id, segment_id)
@spec remove_from_segment(Sendio.Client.t(), String.t(), String.t()) :: Sendio.Client.response(Sendio.Empty.t())
Removes a contact from a segment.
update(client \\ Sendio.client(), contact_id, opts)
@spec update(Sendio.Client.t(), String.t(), Keyword.t()) :: Sendio.Client.response(Sendio.Contacts.Contact.t())
Updates a contact.
Options
:first_name- The contact's first name:last_name- The contact's last name:unsubscribed- Whether the contact is unsubscribed:properties- Object of custom property key-value pairs
update_topics(client \\ Sendio.client(), contact_id, topics)
@spec update_topics(Sendio.Client.t(), String.t(), [map()]) :: Sendio.Client.response(Sendio.List.t(Sendio.Contacts.TopicSubscription.t()))
Updates topic subscriptions for a contact.
Takes a list of maps with :id (topic ID) and :subscription ("opt_in" or "opt_out").
Example
Sendio.Contacts.update_topics(contact_id, [
%{id: "topic_123", subscription: "opt_in"},
%{id: "topic_456", subscription: "opt_out"}
])