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