Intercom Elixir SDK

Intercom snippet

Intercom can be installed in your web app to help you chat to logged-in and logged-out users.

Full configuration options can be found here.

Generate Intercom Snippet

require Intercom

# Generate the full Intercom snippet
Intercom.snippet(
  %{email: "[email protected]"}, # Key value pairs identifying your user.
  app_id: "<your app id>", # Your app's identifier.
  secret: "<your secret key>" # Your app's secret key. This enables secure mode https://docs.intercom.io/configure-intercom-for-your-product-or-site/staying-secure/enable-secure-mode-on-your-web-product
)

Example Web Snippet

For example, this shows how to generate the web snippet in a Phoenix web app:

defmodule HelloPhoenix.PageController do
  use HelloPhoenix.Web, :controller
  require Intercom

  plug :intercom

  def index(conn, _params) do
    # Intercom injectable via <%= raw @intercom %>
    render conn, "index.html"
  end

  defp intercom(conn, _params) do
    {:ok, snippet} = Intercom.snippet(
      %{email: "[email protected]"},
      app_id: "<your app id>",
      secret: "<your secret>"
    )
    assign(conn, :intercom, snippet)
  end
end

Intercom REST API

The Intercom REST API provides full access to Intercom resources. This library provides a thin wrapper over httpoison:

require Intercom.Client

Intercom.Client.start

Intercom.Client.get!(
  "/users",
  [],
  hackney: Intercom.Client.auth("<personal access token>", "")
)