ExCampaignMonitor v0.6.0 ExCampaignMonitor View Source
A wrapper for the Campaign Monitor JSON API
- Install the package by adding
ex_campaign_monitor
to your list of dependencies inmix.exs
:
def deps do
[
{:ex_campaign_monitor, "~> 0.2"}
]
end
- Add your Campaign Monitor account API key and a List ID to your application’s config:
config :ex_campaign_monitor,
:api_key, "YOUR_API_KEY",
:list_id, "YOUR_LIST_ID",
- Call a function on the
ExCampaignMonitor
module, for example:
defmodule MyApp.PageController do
use MyAppWeb, :controller
def index(conn, params) do
ExCampaignMonitor.add_subscriber(%{
email: params["email"], # email address of the user you want to subscribe
consent_to_track: "Yes" # https://help.campaignmonitor.com/consent-to-track
})
send_resp(conn, "Subscriber added")
end
end
Link to this section Summary
Functions
Add a new subscriber to your list
Create a new list
Get active subscribers for a list
Get details for a List by ID
Get a single subscriber by their email address
Import many subscribers to your list
Remove (delete) a single subscriber from your list
Unsubscribe someone who is currently subscribed to your list
Update an existing subscriber from your list
Link to this section Functions
Add a new subscriber to your list
ExCampaignMonitor.add_subscriber(%{email: "someone@domain.com", consent_to_track: "Yes"})
> {:ok, %Subscriber{email: "someone@domain", consent_to_track: "Yes"}}
Create a new list
ExCampaignMonitor.create_list(%{title: "my list"})
> {:ok, %List{title: "my list"}}
Get active subscribers for a list
ExCampaignMonitor.get_active_subscribers("a1a1a1a1")
> {:ok, %List{list_id: "a1a1a1a1"}, subscribers: [%Subscriber{status: "active"}]}
Get details for a List by ID
ExCampaignMonitor.get_list_by_id("a1a1a1a1")
> {:ok, %List{title: "my list", list_id: "a1a1a1a1"}}
Get a single subscriber by their email address
ExCampaignMonitor.get_subscriber_by_email("person@domain.com")
> {:ok, %Subscriber{email: "person@domain.com", consent_to_track: "Yes"}}
Import many subscribers to your list
ExCampaignMonitor.import_subscribers([
%{
email: "someone@domain.com",
consent_to_track: "Yes"
},
%{
email: "person@domain.com",
consent_to_track: "No"
}
])
> {:ok, 2}
Remove (delete) a single subscriber from your list
ExCampaignMonitor.remove_subscriber("person@domain.com")
> {:ok, :removed}
Unsubscribe someone who is currently subscribed to your list
ExCampaignMonitor.unsubscribe("person@domain.com")
> {:ok, :unsubscribed}
Update an existing subscriber from your list
ExCampaignMonitor.update_subscriber(%{
old_email: "someone@domain.com",
new_email: "person@domain.com",
consent_to_track: "Yes"
})
> {:ok, %Subscriber{email: "person@domain.com", consent_to_track: "Yes"}}