LoopsEx.Contacts (LoopsEx v0.1.0)

View Source

Manage contacts in your audience.

Summary

Types

Response type returned by Loops API calls

Functions

Create or upsert a contact in your Loops audience.

Delete a contact by "email" or "userId".

Find contacts by "email" or "userId".

Update an existing contact by "email" or "userId".

Types

response()

@type response() :: LoopsEx.Client.response()

Response type returned by Loops API calls

Functions

create(params)

@spec create(map()) :: response()

Create or upsert a contact in your Loops audience.

Parameters

  • params (map): contact data. Must include "email" or "userId". Optional fields: "firstName", "lastName", custom properties.

Returns

  • {:ok, %{"success" => true, "id" => id}} on success.
  • {:error, {status_code, response_body}} on failure.

Example

iex> LoopsEx.Contacts.create(%{"email" => "john@example.com", "firstName" => "John"})
{:ok, %{"success" => true, "id" => "contact_id"}}

delete(params)

@spec delete(map()) :: response()

Delete a contact by "email" or "userId".

Parameters

  • params (map): provide only one of "email" or "userId".

Returns

  • {:ok, %{"success" => true, "message" => msg}} on success.
  • {:error, {status_code, response_body}} on failure.

Example

iex> LoopsEx.Contacts.delete(%{"userId" => "user_123"})
{:ok, %{"success" => true, "message" => "Contact deleted."}}

find(params)

@spec find(map()) :: response()

Find contacts by "email" or "userId".

Parameters

  • params (map): query params. Provide "email" or "userId".

Returns

  • {:ok, [contact_maps]} on success.
  • {:error, {status_code, response_body}} on failure.

Example

iex> LoopsEx.Contacts.find(%{"email" => "john@example.com"})
{:ok, [%{"email" => "john@example.com", ...}]}

update(params)

@spec update(map()) :: response()

Update an existing contact by "email" or "userId".

Parameters

  • params (map): fields to update. Must include "email" or "userId".

Returns

  • {:ok, %{"success" => true, "id" => id}} on success.
  • {:error, {status_code, response_body}} on failure.

Example

iex> LoopsEx.Contacts.update(%{"email" => "john@example.com", "firstName" => "Jane"})
{:ok, %{"success" => true, "id" => "contact_id"}}