Marketo: Automating Challenge Completions using a Marketo Form
Requirements: Marketo, Influitive API stage, Influitive API token
Do you have a challenge which asks advocates to fill out a form or sign up for an event using a form? You're likely manually confirming registration and approving submissions. Using a Marketo API webhook and an AdvocateHub API stage, you can automate this confirmation.
This article will cover:
- Part 1: In the Advocate Hub
- Creating a Custom Event
- Creating a Challenge with an API Stage
- Part 2: In Marketo
- Creating a New Program
- Creating a New Local Asset
- Creating a new Smart Challenge
- Creating a Webhook
- Adding Webhooks to the Smart Challenge
Part I: In AdvocateHub
Step 1: Create a Custom Event Type in your Hub
Please read this article to do so: API: Setting up Custom Event Types. We've called our event type marketo_form, but you should use a naming convention which makes the most sense to your use case.
This Custom Event Type can be used for completing challenges, awarding badges, etc. It should be specific enough to describe the type of action being completed, but can be general enough to be used in multiple situations / challenges.
Step 2: Create a challenge with an API stage
i. Create a new challenge from scratch and give it a name, headline, banner image (optional), and challenge description.
Important: Provide a link to the Marketo form in your challenge description. Make it clear to advocates that they must sign up using the same email address as the one they use in your Hub.
You can use markdown code to insert your link. For example:
## [Sign up now!](http://www.influitive.com/advocamp2017/signup)
ii. Choose the API Stage from the Administrator Actions section.
a. In the Stage Description section, give a brief explanation of what happens next.
b. In the Allowed Event Type field, choose the Custom Event Type which you created above (e.g. Marketo Form)
c. Fill out the API Code. This must be unique and is for exclusive use on this stage of this individual challenge. In the API call, this is referred to as the stage[code]. Here we'll use advocamp_registration as this stage is meant to award points for people who sign up for Advocamp.
iii. Target your challenge and then Save it.
Part II: In Marketo
Step 1: Create a new Program
Create it in the appropriate Campaign Folder. We'll call ours "Advocamp 2017 Registrations"
Step 2: Create a New Local Asset and choose "Form"
As we will identify advocates by email address, ensure that you have included at least this field.
Step 3: Create a new Smart Campaign in the same Program.
a. Click on the Smart List tab
b. Search and choose the trigger, Fills Out Form and drag it to the left area.
c. Choose your the form you created above.
Step 4: Create a Webhook
a. Click on the "Admin" link on the top of the Marketo application
b. Go to Integrations > Webhooks
c. Click on New Webhook
d. Fill out the pop up in the following way:
Webhook Name: You may choose any relevant name
Description: Enter a relevant description
URL: https://YOURHUB.influitive.com/api/events
Request Type: POST
Template
Details:
- "type" is the Custom Event Type (e.g. marketo_form)
- {{lead. Email Address}} - This is the Marketo email address token
- "stage": { "code" } is the unique stage API Code created above
Request Token Encoding: JSON
Response Type: JSON
e. Save your webhook and click on Webhook Actions, and choose Set Custom Header
f. Add 3 headers
Header | Value |
Authorization |
Token token=YOURHUBTOKEN |
Accept | application/vnd.infl-v3+json |
Content-Type | application/json |
g. Save the Custom Header.
Step 5: Add your Webhook to the Smart Campaign "Flow"
e. Click on the Schedule tab and click the Activate button to activate your campaign.