defmodule Intercom.Events do
@moduledoc """
Provides functionality for managing events.
See https://developers.intercom.com/intercom-api-reference/reference#event-model
"""
@doc """
Submits one event.
Arguments:
- `contact_id`: The id generated by intercom for the contact.
- `event_name`: Arbitrary event name.
- `created_at`: `DateTime` at which the event occured. (Optional).
Returns `{:ok, data, metadata}` or `{:error, error_code, metadata}`.
"""
def submit(contact_id, event_name) do
submit(contact_id, event_name, DateTime.utc_now())
end
def submit(contact_id, event_name, %DateTime{} = created_at) do
Intercom.API.call_endpoint(:post, "events", %{
id: contact_id,
event_name: event_name,
created_at: created_at |> DateTime.to_unix()
})
end
end