ExactTarget is an email marketing solution provider with an http-based api for performing various tasks such as managing mailing lists, managing subscribers, and queueing up email jobs. This gem is a pure ruby library for accessing that api.
gem install exact-target
github.com/ePublishing/exact_target
The ExactTarget gem depends on both Nokogiri and Builder. Both should be installed automatically when the gem is installed (if not already installed).
Currently this is a partial implementation. None of the tracking functionality is yet implemented.
require 'exact_target' ExactTarget.configure do |config| config.username = 'my_username' config.password = 'my_password' end
# Retrieve subscriber attributes ExactTarget.accountinfo_retrieve_attrbs
# Retrieve all list ids ExactTarget.list_retrieve # Retrieve list id for given name ExactTarget.list_retrieve('Some List') # Retrieve list information by list id ExactTarget.list_retrieve(15123512) # Create new list ExactTarget.list_add("My Test List", :private) # Rename a list ExactTarget.list_edit(15123512, "My RENAMED Test List") # Import new or updated subscribers en mass from a comma-delimited # or tab-delimited file into an existing subscriber list. ExactTarget.list_import(15123512, 'sometestfile.txt', ['Email Address', 'Field 2', ...]) ExactTarget.list_import([id_1, id2, ...], 'sometestfile.txt', ['Email Address', 'Field 2', ...]) # Request an update on the status of an import. ExactTarget.list_importstatus(some_import_id) # Retrieve the profile and preference attributes for all subscribers # (or all subscribers with a certain status) on a specified list. ExactTarget.list_retrieve_sub(42, 'Active') # Delete a list and all subscribers who belong to the list. ExactTarget.list_delete(15123512) # Retrieve all groups in your account. ExactTarget.list_retrievegroups # Refresh the membership of an attribute-based (rule-based) group # to reflect any changes to your subscribers' attribute values. ExactTarget.list_refresh_group(3514) # Request an update on the status of a group refresh. ExactTarget.batch_inquire(8912)
# Add a subscriber to a list. subscriber = ExactTarget::Subscriber.new.tap do |s| s.email_address = 'test.person@company.com' s.full_name = 'George Wills' end ExactTarget.subscriber_add(1234, subscriber, :status => :active, :update => true, :ChannelMemberID => 5678) # Update the attributes (including email address) and/or status of # an existing subscriber. Can be used to reactivate a subscriber # who was placed on the master unsubscribe list. subscriber = ExactTarget::Subscriber.new.tap do |s| s.email_address = 'new.email@company.com' s.full_name = 'Frank Jones' end ExactTarget.subscriber_edit(63718, 'previous@email.com', subscriber, :status => :unsub, :reason => 'Some reason ...', :ChannelMemberID => 5678) # Retrieve all profile and preference attribute data entered for a # subscriber on a specific list, or retrieve all attribute data for # a subscriber and all lists to which the subscriber belongs. ExactTarget.subscriber_retrieve(123456, 'someone@example.com') ExactTarget.subscriber_retrieve(123456789) # Delete a subscriber from your database, or remove a subscriber # from a specified list. ExactTarget.subscriber_delete(112233445566, 'bob@hotmail.com') ExactTarget.subscriber_delete(112233445566) # Place a subscriber's (or multiple subscribers') email address on # your Master Unsubscribe list so that the email address is never # added to any of your subscriber lists. ExactTarget.subscriber_masterunsub 'someone@email.com', 'someone.else@email.com', ...
# Retrieve all email IDs or filter by email name and/or date range. ExactTarget.email_retrieve ExactTarget.email_retrieve('Welcome to Fortune One!') ExactTarget.email_retrieve(:start_date => Date.parse('2008-09-15'), :end_date => Date.parse('2008-10-15')) ExactTarget.email_retrieve('Welcome to Fortune One!', :start_date => Date.parse('2008-09-15'), :end_date => Date.parse('2008-10-15')) # Create an email from HTML that you send to the ExactTarget application via an API call. ExactTarget.email_add('Your email name', 'Your subject line', :body => 'Your HTML email body') ExactTarget.email_add('Your email name', 'Your subject line', :file => 'Filename') # Create the text version of an email, which will be displayed # to any subscriber whose email client does not support HTML email. ExactTarget.email_add_text(email_id, :body => 'Your text email body') ExactTarget.email_add_text(email_id, :file => 'Filename') # Retrieve the body of the HTML version of any email in your account. ExactTarget.email_retrieve_body(email_id)
# Kick off a mailing (test or live) ExactTarget.job_send(email_id, [list_id_1, list_id_2, ...], :suppress_ids => [list_id_3, ...], :from_name => 'John Doe', :from_email => 'jd@nowhere.com', :additional => 'additional information for job', :multipart_mime => true, :track_links => false, :send_date => '5/3/2011', :send_time => '17:35', :test_send => true)
# Kick off a triggered send ExactTarget.triggered_send_add(external_key, channel_member_id, email_addresses =[], options = {}) email_addresses is an array of addresses of subscribers options is a hash of name value attributes to pass to the triggered send to add custom data to the email message
- Author
-
David McCullars <dmccullars@ePublishing.com>
- Copyright
-
© 2011 ePublishing
- Licence