class MarketoAPI::Campaigns
Implements Campaign-related calls for Marketo.
Sources¶ ↑
Campaigns
have a source, which the Marketo SOAP API provides as MKTOWS
and SALES
. MarketoAPI
provides these values as the friendlier values marketo
and sales
, but accepts the standard Maketo SOAP API enumeration values.
Public Instance Methods
Implements getCampaignsForSource
for the marketo
source; a specialization of for_source
.
# File lib/marketo_api/campaigns.rb, line 49
Implements getCampaignsForSource
for the sales
source; a specialization of for_source
.
# File lib/marketo_api/campaigns.rb, line 60
Implements {getCampaignsForSource
}.
If possible, prefer the generated methods for_marketo
and for_sales
.
# File lib/marketo_api/campaigns.rb, line 37 def for_source(source, name = nil, exact_name = nil) call( :get_campaigns_for_source, { source: resolve_source(source), name: name, exactName: exact_name }.delete_if(&MarketoAPI::MINIMIZE_HASH) ) end
Implements {requestCampaign
}.
Parameters¶ ↑
source
-
Required. The source of the campaign.
leads
-
Required. An array of Lead objects or lead keys. If both
leads
andlead
are provided, they will be merged. lead
-
An alias for
leads
. campaign_id
-
The campaign ID to request for the
lead
orleads
. Required ifcampaign_name
orprogram_name
are not provided. campaign_name
-
The campaign name to request for the
lead
orleads
. Required ifcampaign_id
orprogram_name
are not provided. program_name
-
The program name to request for the
lead
orleads
. Required ifcampaign_id
orcampaign_name
are not provided, or ifprogram_tokens
are provided. program_tokens
-
An array of program tokens in the form:
{ attrib: { name: name, value: value } }
This will be made easier to manage in the future.
If possible, prefer request_marketo
and request_sales
.
# File lib/marketo_api/campaigns.rb, line 98 def request(options = {}) source = options.fetch(:source) { :MKTOWS } leads = MarketoAPI.array(options.delete(:leads)) + MarketoAPI.array(options.delete(:lead)) if leads.empty? raise ArgumentError, ':lead or :leads must be provided' end valid_id = options.has_key?(:campaign_id) || options.has_key?(:campaign_name) || options.has_key?(:program_name) unless valid_id raise ArgumentError, ':campaign_id, :campaign_name, or :program_name must be provided' end if options.has_key?(:campaign_id) && options.has_key?(:campaign_name) raise ArgumentError, ':campaign_id and :campaign_name are mutually exclusive' end if (tokens = options.delete(:program_tokens)) && !tokens.empty? if !options[:program_name] raise KeyError, ':program_name must be provided when using :program_tokens' end end REQUEST_PARAM_XF.each { |o, n| options[n] = options.delete(o) } call( :request_campaign, options.merge( source: resolve_source(source), leadList: transform_param_list(:get, leads), programTokenList: tokens ).delete_if(&MarketoAPI::MINIMIZE_HASH) ) end
Implements getCampaignsForSource
for the marketo
source; a specialization of request
.
# File lib/marketo_api/campaigns.rb, line 138
Implements getCampaignsForSource
for the sales
source; a specialization of request
.
# File lib/marketo_api/campaigns.rb, line 147
Implements {scheduleCampaign
}.
Optional Parameters¶ ↑
run_at
-
The time to run the scheduled campaign.
program_tokens
-
An array of program tokens in the form:
{ attrib: { name: name, value: value } }
This will be made easier to manage in the future.
source
must be marketo
or sales
or the equivalent enumerated values from the SOAP environment (MKTOWS
or SALES
).
# File lib/marketo_api/campaigns.rb, line 170 def schedule(program_name, campaign_name, options = {}) call( :schedule_campaign, { programName: program_name, campaignName: campaign_name, campaignRunAt: options[:run_at], programTokenList: options[:program_tokens] }.delete_if(&MarketoAPI::MINIMIZE_HASH) ) end
Private Instance Methods
# File lib/marketo_api/campaigns.rb, line 193 def resolve_source(source) source = source.to_sym res = if ENUMS.include? source source else SOURCES[source] end raise ArgumentError, "Invalid source #{source}" unless res res end