Overview
This article provides a comprehensive guide on automating reward fulfillment in a Shopify store using Zapier. It covers creating orders when rewards are redeemed, managing advocate information, and setting up Zaps for order fulfillment and cancellation notifications in AdvocateHub. The process includes configuring webhooks, customizing reward details, and ensuring seamless integration between Shopify and AdvocateHub for efficient reward management.
Information
- Creating Your Reward In AdvocateHub
- In Shopify
- Building The 'Create Order' Zap
- Building The 'Fulfillment' Zap
- Building The 'Cancellation' Zap
Prerequisites: You will need to have a Premium Zapier account in order to begin this process. You will also need a Shopify Store and of course you will need the reward(s) created in the hub.
Creating Your Reward In AdvocateHub
Firstly we want to create the reward in the AdvocateHub. There is a more general article here on the creation of rewards which would be helpful to look at but we do need to include one crucial additional step to our reward creation.
In this example we will use a T-Shirt as our reward. The first tab of the reward Fulfillment should look like below with 'manual' chosen"
The second tab, Headline, can be filled out as you please, this is just the name, description etc. of your reward.
The third tab, Redeeming , is important. At the bottom of this section you should see an Ask Your Advocates section. Here we need to ask the Advocate to fill in their shipping details. You are free to add more questions here but for this example we will stick with the basics:
The final tab is up to you again, this is just for targeting purposes so you are free to target to anybody you like. Save this and we can move on to the next step.
In Shopify
In your Shopify store you will need to create the corresponding product to the reward we just created. You can do this by following the instruction here .
Also in your Shopify store you are going to need to get your API details which we will use later. You can do this by following the instructions here .
Now that we have everything in place we can move on to building our Zap!
Building The 'Create Order' Zap
1. Go to Zapier, and click on Make a Zap!
2. Choose Webhook for the 'App' and select Catch Hook for the 'trigger'. At this point it should look like below:
3. Copy the webhook link present in the View Webhook section and then continue to Test this step and copy the webhook link
4. Now open up a new window/tab and navigate to your AdvocateHub's Webhook configuration page: Settings > System > Webhooks
5. Click on the Add a Webhook button:
6. Here you fill out the name of the webhook, the URL and the format. You also select the event you want this webhook to run on:
- Name - Is not important and you can call it whatever makes most sense for you
- Webhook Provider URL - This is the URL we retrieved from Zapier in point 3 above
- Format - Must be 'Form Post'
- Event - In this case, it will be 'Reward Redemption Requested'
7. Now we are ready to test that the webhook is being caught so head back to Zapier and go to the 'Test this step' stage. Click 'OK, I did this' and quickly go back to your hub and redeem the T-Shirt reward in your AdvocateHub. If the webhook is working at this point you will see a screen like below:
8. Now we need to add a filter to our Zap in order to make sure this only runs on our specific reward. To add a filter you need to click the small '+' sign and then select FIlter .
9. Go to the Edit Options. You will see 3 fields on the right-hand side. The first field is the data we want to select for our filter, in this case it is 'Source Name'. We want to have the text match exactly the name of our T-Shirt reward in the AdvocateHub. So, it should look like below:
10. On the Test this step section Zapier will give you an overview of when your Zap will succeed or fail.
11. The final part of the Zap requires us to complete the action on our webhook. We want to select Webhooks here.
12. On the next step Custom Request, we need to click 'show less common options'.
This will reveal an option called Custom Request which is the one we want.
13. Click continue to move on to the next Edit Template section. Here we will see a lot of fields that need to be filled. I will explain what information needs to go into which field below. I will ignore fields that do not affect us:
Field | Value |
---|---|
Method | POST |
URL | https://[your shopify store].com/admin/orders.json |
Data | { "order": { "line_items":[ { "variant_id": 222222222, //This is the variant ID of your product in Shopify "quantity": 1, "fulfillment_status": "null" } ], "customer": { "first_name": "[Advocate's First Name]", //use Zapier's insert field function "last_name": "[Advocate's Last Name]", //here to add the Advocate information, "email": "[Advocate's Email]" //you can find the button in the top right of this 'data' field }, "financial_status": "pending", "shipping_address": { "first_name": “[Advocate’s First Name]", "last_name": “[Advocate’s Last Name]", "address1": “[Advocate’s Address]", "address2": “[Advocate’s Redemption ID]", "city": “[Advocate’s City]", "province": “[Advocate’s Province/State]", "country": “[Advocate’s Country]", "zip": “[Advocate’s ZIP]" } } } |
Unflatten | Yes |
Basic Auth | [ Shopify API Key ]|[ Shopify API Password ] //Note the pipe character // '|' separating these two values |
Headers |
Content-Type : application/json Authorization: [ Insert Shopify Key ] It should look something like this Basic MzgyYzkxOWJiYjEyYzUxNjEwNmIwNjkzMDBjODRkNjk6ZjlmYTNjZjY3Zj hNmI3ZjQyN2RSZmNmNjI3NDA0NjM= |
Building The 'Fulfillment' Zap
This Zap will automatically notify the Advocate in the AdvocateHub that their reward has been fulfilled once it has been marked as fulfilled in your Shopify store. Let's get started:
1. Repeat Steps 1 & 2 from the Zap above but this time we need to copy the Webhook URL given to us by Zapier into our Shopify store.
2. In your Shopify store go to Settings > Notifications and scroll down to the bottom of the page, here you should see a Webhook section , click 'Create a Webhook'
3. Now we need to setup the webhook with the following data:
- Event - 'Order Fulfillment'
- Format - JSON
- URL - The webhook URL you got from Zapier
Hit save webhook when done.
4. Like before, we need to test that this webhook gets caught. So, head back to Zapier and go to the 'Test this step' stage. Click 'OK, I did this' and quickly go to your Shopify store and mark your T-Shirt order as 'fulfilled'. If the webhook is working at this point you will see a screen that informs you that the test was successful.
5. This time we do not need a filter so we go straight to the 'Action' stage of the Zap. Once again we will be choosing 'Webhook' and 'Custom Request'. Refer back to steps 11 & 12 in the previous section if you have forgotten.
6. Click continue to move on to the next section. Here we will see a lot of fields that need to be filled. I will explain what information needs to go into which field below. I will ignore fields that do not affect us:
Field | Value |
---|---|
Method | POST |
URL |
https://api.influitive/reward_redemptions/[Advocate Address2]/decision/fulfill Note: We choose [Advocate Address2] here as this is where we stored the Influitive reward redemption ID when we sent the information to Shopify in our first zap. It is not ideal and can be slightly confusing but it is the only slot we can use in this setup. |
Data | { "message": "Your reward has been fulfilled!" } |
Unflatten | Yes |
Headers |
Content-Type : application/json Authorization: [ Influitive API Token ] X_ORG_ID: [ Influitive X_ORG_ID ] Accept: application/json |
Building The 'Cancellation' Zap
If you don't have stock or want to cancel and order for whatever reason then this Zap will notify the advocate in AdvocateHub and will give them their points back. It is almost identical to the 'Fulfillment' zap we just did so I will just highlight the differences below:
For Step 3 above, you just need to create another Webhook in Shopify and change the event from Order Fulfillment to Order Cancellation and also include the new Webhook URL you got from Zapier
For Step 6 above, the information is the same except for:
URL needs to be changed from https://api.influitive/reward_redemptions/[Advocate Address2]/decision/fulfill to https://api.influitive/reward_redemptions/[Advocate Address2]/decision/ refuse
Data should be updated to:
{
"message": "Your reward has been cancelled"
}
FAQ
What do I need to start automating my Shopify order creation with Zapier?
You need a Premium Zapier account, a Shopify store, and the rewards created in AdvocateHub to begin automating your order creation process with Zapier.
How do I ensure that an Advocate's shipping address is collected for the reward fulfillment?
In the Redeeming tab of your AdvocateHub, you can request shipping details from the Advocate by adding questions in the "Ask Your Advocates" section.
What is the purpose of setting up a 'Create Order' Zap in Zapier?
The 'Create Order' Zap automates the process of creating an order in Shopify when an Advocate redeems a reward, streamlining the reward fulfillment process.
How can I notify an Advocate that their reward has been fulfilled or cancelled?
You can set up Zaps in Zapier that trigger notifications in AdvocateHub when an order is marked as fulfilled or cancelled in your Shopify store, ensuring Advocates are promptly informed.
What are the key differences when setting up a Zap for order cancellation notifications compared to fulfillment notifications?
For order cancellation notifications, you need to select the Order Cancellation event in Shopify webhook settings and update the Zapier template with the correct endpoint and data payload to reflect the cancellation message.