Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

active_campaign

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

active_campaign

  • 0.1.16
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

Build StatusCode ClimateTest Coverage

Active::Campaign::Ruby

A simple wrapper for the ActiveCampaign API. Since their API seems to be basically just form posts to their server don't complain here about the way it works. The only thing we really changed was how results are wrapped and returned and you can read more about that here.

Installation

Add this line to your application's Gemfile:

gem 'active_campaign'

And then execute:

$ bundle

Or install it yourself as:

$ gem install active_campaign

Usage

Read their API documentationfor how to use this gem.

# To setup the client
client = ::ActiveCampaign::Client.new(
        api_endpoint: 'YOUR-ENDPOINT', # e.g. 'https://yourendpoint.api-us1.com/admin/api.php'
        api_key: 'YOUR-API-KEY') # e.g. 'a4e60a1ba200595d5cc37ede5732545184165e'

# or configure globally for all clients
::ActiveCampaign.configure do |config|
  config.api_endpoint = 'YOUR-ENDPOINT', # e.g. 'https://yourendpoint.api-us1.com/admin/api.php'
  config.api_key = 'YOUR-API-KEY' # e.g. 'a4e60a1ba200595d5cc37ede5732545184165e'
end

# To fetch all lists
ActiveCampaign.list_list ids: 'all'
# To sync a contact (create if doesn't exist or update if matching email)
# you have to resort to some really ugly hacks. Due to the form serialization 
# type of API (read not a object oriented REST API) you need to translate
# something pretty into something horrific when it comes to the parameters.
ActiveCampaign.contact_sync({
                                     "id" => user.active_campaign_contact_id,
                                  "email" => user.email,
                             "first_name" => user.first,
                              "last_name" => user.last,
     "p[#{user.active_campaign_list_id}]" => user.active_campaign_list_id,
"status[#{user.active_campaign_list_id}]" => user.receive_emails ? 1 : 2
})

# Another example of syncing a contact:

list_params = {
  "#{user.active_campaign_list_id}" => user.active_campaign_list_id,
             "#{user.other_list_id}" => user.other_list_id,
}

status_params = {
  "#{user.active_campaign_list_id}" => user.receive_emails ? 1 : 2,
             "#{user.other_list_id}" => true ? 1 : 2,
}

ActiveCampaign.contact_sync({
        "id" => user.active_campaign_contact_id,
     "email" => user.email,
"first_name" => user.first,
 "last_name" => user.last,
         "p" => list_params
    "status" => status_params
})

Response

All responses are wrapped under results so ActiveCampaign.list_list ids: 'all' returns

{
     "result_code" => 1,
  "result_message" => "Success: Something is returned",
   "result_output" => "json",
         "results" => [
    {
                    "id" => "1",
                  "name" => "One list",
                 "cdate" => "2013-05-22 10:07:36",
               "private" => "0",
                "userid" => "1",
      "subscriber_count" => 2
    },
    {
                    "id" => "2",
                  "name" => "Another List",
                 "cdate" => "2013-05-22 10:09:15",
               "private" => "0",
                "userid" => "1",
      "subscriber_count" => 0
    }
  ]
}

For using tags_list action do the following

ActiveCampaign.get('tags_list')

The response of method is an array of tags

[{"id":1,"name":"test_tag","count":1}]

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Rebase against master we want 1 commit per feature please
  5. Push to the branch (git push origin my-new-feature)
  6. Create new Pull Request

FAQs

Package last updated on 14 May 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc