module Cordial # Wraps all interaction with the Automation Templates resource. # @see https://api.cordial.io/docs/v1/#!/automation_templates class AutomationTemplates include ::HTTParty extend Client # Create a new message template. # # @example Usage. # Cordial::AutomationTemplates.create( # key: "promo_01_20_2018", # name: "promo_01_20_2018", # channel: "email", # classification: "promotional", # base_aggregation: "hourly", # headers:{ # subject_email: "One Day Only Sale", # from_email: "info@example.com", # reply_email: "info@example.com", # from_description: "Promotions Team" # }, # content:{ # text: "
Hello World
" # } # ) # # @example successful response # {"success"=>true, "message"=>"record created"} # # @example failed response # {"error"=>true, "messages"=>"KEY must be unique"} # def self.create(key:, name:, channel:, classification:, base_aggregation:, headers:, content:) client.post('/automationtemplates', body: { key: key, name: name, channel: channel, classification: classification, baseAggregation: base_aggregation, message: { headers: { subject: headers[:subject_email], fromEmail: headers[:from_email], replyEmail: headers[:reply_email], fromDesc: headers[:from_description] }, content: { "text/html": content[:text] } } }.to_json) end # Sends an automation template. # # @example Usage. # Cordial::AutomationTemplates.send( # key: "promo_01_20_2018", # email: "user@example.com", # order: { # number: "R123456789" # } # ) # # @example successful response with unsubscribed user # {"success"=>true, "message"=>"messages sent", "messagecontacts"=>[ # {"accepted"=>false, "email"=>"user@example.com", "error"=>"not-subscribed"} # ]} # # @example successful response with subscribed user # {"success"=>true, "message"=>"messages sent", "messagecontacts"=> # [{"accepted"=>true, # "email"=>"user@example.com", # "mcID"=>"h123456:1a1a1a1a1a1:787457457", # "cID"=>"a1a1a1a1a1a1a1a1a1"} # ]} # # @example failed response # {"error"=>"'/v1/automationtemplates//send' is not found."} # def self.send(key:, email:, **args) client.post("/automationtemplates/#{key}/send", body: { to: { contact: { email: email }, extVars: {}.compact.merge(args) }, identifyBy: "email" }.to_json) end end end