promoter is a wrapper for the promoter.io REST API.
You can find the promoter.io API docs here: https://developers.promoter.io/v1.0/reference
First off you need to grab your promoter.io api key.
Add this line to your application's Gemfile:
gem 'promoter'And then execute:
$ bundle
Or install it yourself as:
$ gem install promoter
Set your api key with:
Promoter.api_key = 'YOUR API KEY'(Put this into an initializer i.e. app/initializers/promoter.rb if using Rails.)
Promoter::Feedback.all(score: 8) # => returns all feedback with a score of 8
# this is paginated. Pass page: 2 to get the second page
# (I know, this is different from the other api calls! This will be fixed in later versions)Possible filters:
score Filter by the score
score_type Filters by the score type: promoter, detractor, passive
survey_campaign Filter by the campaign id
survey_campaign_status Filter by the campaign status: ACTIVE, COMPLETE
Promoter::Feedback.find(79) #=> id of the feedback to returnPromoter::Contact.all(page: 2) # => this is paginated - returns page 2 of resultsTo find the a contact by an email pass in the email option:
Promoter::Contact.all(email: "[email protected]")Promoter::Contact.find(897)Promoter::Contact.create(email: "[email protected]", # required
first_name: "Chris", # optional
last_name: "O'Sullivan", # optional
contact_list: [599], # array of contact list ids to add to
campaign: 78, # campaign which this belongs to
attributes: { plan: 'silver' } # any extra data you want to add to the contact
send: false ) # set this to true to send the NPS immediatelyPromoter::Contact.destroy("[email protected]")Promoter::Contact.survey(email: "[email protected]", # required
first_name: "Chris", # optional
last_name: "O'Sullivan", # optional
campaign: 78, # campaign which this belongs to
attributes: { plan: 'silver' })# any extra data you want to add to the contactPromoter::Campaign.create(name: "Campaign Name", # required
contact_list: 1, # required
email: 1) # requiredPromoter::Campaign.all(page: 2) # => this is paginated - returns page 2 of resultsPromoter::Campaign.send_surveys(33, false)This takes two parameters, the campaign id, and a boolean as to send out surveys to ALL of the customers for the campaign. (This is defaulted to false!)
Promoter::ContactList.create(name: "List Name") # requiredPromoter::ContactList.all(2) # => this is paginated - returns page 2 of resultsPromoter::ContactList.contact_ids_for(2)
# => returns an array of contact ids for a contact list idPromoter::ContactList.remove_contact(contact_list_id: 7899,
contact_id: 15777)Promoter::ContactList.remove_contact(contact_list_id: 7899,
email: "[email protected]")Promoter::ContactList.remove_contact(contact_email: "[email protected]")Promoter::EmailTemplate.create(name: "Campaign Name", # required
subject: "Email Name", # required
logo: "<base64EncodedImageData>", # required
reply_to_email: "[email protected]", # required
from_name: "Name", # required
intro_message: "Message", # required
language: "en", # required
company_brand_product_name: "name") # requiredPromoter::EmailTemplate.all # => returns all resultsPromoter::Metric.all
# => returns a list of interesting metrics that promoter has for your account- Fork it ( https://github.com/[my-github-username]/promoter/fork )
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request