macromator logo svg
Your Needs
Partner & Channel Marketing

Empower your channel partners. Build a marketing and sales pipeline together.

Campaigns & Programs

B2B campaigns powered by content and experiences that resonate in today’s modern world.

Global Localization Resources

Cost-efficient and seamless global marketing operations experts.

Webinar Services

Supercharge your online events and webinars in the new remote age.

Account Based Marketing

Target accounts, but speak to people.

Salesforce Consulting

Certified specialists for Salesforce solutions

Marketo Consulting

Marketo certified specialists

HubSpot Consulting

HubSpot specialists for your marketing needs

ZINFI Consulting

ZINFI expertise to support your partner marketing platform.

Pardot Consulting

Pardot certified specialists

Zift Consulting

Zift expertise to support your partner marketing platform.

Managed Services

Extend your marketing team.

Content & Template Design

Deliver your message with the right content.

Demand Gen Strategies

Macro’s demand generation strategies.

Business Process Outsourcing

Eliminate marketing bottlenecks.

Data Operations

Fine tuning and optimization of your marketing tech stack.

Global Concierge Service

Cost-efficient and seamless global marketing operations experts.

Our Capabilities
Our Clients

Explore the clients we've worked with.

Case Studies

Real Business Impact from Marketing Operations.

Our Expertise

Retainer or project based support.


Learn about the Martech Community.


We're hiring, take a look why you should join Macro today.

Contact Us

We want to help you create magical customer experiences.

About Us

Marketo and Google Cloud Integration

Case Study: How to Send Transactional Emails from Marketo using Google Cloud

One of our clients here at Macro is a major utility company in the United States. This is their story, challenges and the middleware solution Macro provided for them bringing together different data-points to send order confirmation emails.

MarTech Stack

  • Salesforce CRM tracks eCommerce purchases as Orders in Salesforce Custom Objects
  • Salesforce Orders are not connected to either Leads & Contacts
  • Marketo is used as a marketing automation

Use Case

When a customer places an order on their website there are two steps which need to happen:

  1. The order has to be tracked and processed from eCommerce platform to Salesforce Custom Object
  2. An email has to be sent immediately from Marketo with the Order details

The challenge: When an order is placed, Salesforce records as Custom Object only but says nothing about it to Marketo—there is no built in integration that lets the programs speak to one another in the way that our client needed them to. Not only does Salesforce need to send information to Marketo, but once Marketo does its job, it also needs to update Salesforce.

And all this needs to happen as quickly as possible for a smooth customer experience.

Solution provided by Macro

This is where the middleware comes in. Middleware is a classification of technology that unites data between two entirely different systems. Google Cloud Platform (GCP) is a best in class middleware, and it’s what we used to deliver this client’s custom setup. For more on why we like it so much, check out our post entitled What Marketing Operations needs to know about Google Cloud.

The Macro team configured GCP to check Salesforce every minute for new order information.

If GCP finds new orders, it looks over to Marketo and asks if that person already exists inside of Marketo. If not, GCP tells Marketo to make a new customer.

For either new or returning customers, GCP then gives Marketo the relevant order information so that it can send the customer their confirmation email. GCP also checks Salesforce to see if order details change, so that shipping emails and the like can be sent to the customer.

How did we do it, exactly?

We have outlined the technical steps we took below. 

Be warned: If you’re not a developer or you’re new to middleware and Google Cloud Platform, these instructions may seem overwhelming and complex. At Macro we love to tackle some of these more advanced challenges so give us a shout if you need an extra hand.

Technical steps

Marketo and Salesforce communication mediated by GCP

Step one: connect Salesforce to Google Cloud Platform

Salesforce and GCP sync through Salesforce’s Connected App functionality. For our case study client above, we are using the standard Salesforce REST API to generate an  authorization token from the connected app (HTTP POST Method). See developer instructions here.

To get the order information into GCP from Salesforce, we use the authorization token and a Query resource. This performs SOQL GET requests to fetch data from order objects. Details are here.

Step two: connect Marketo to Google Cloud Platform

Similar to Salesforce, Marketo has a technical configuration process to follow so it can receive data from GCP. Details are here.

Furthermore, in order to set up a custom API for Marketo and another platform, a new user type has to be created called the API user. It is not a conventional user-type but has access to everything. More details can be found here.

Step three: configure Marketo to receive data

Since information created in Salesforce will be received by Marketo, we have to make sure that Marketo can understand it. Marketo’s default settings are not set up to handle Salesforce data, so we have to create a Custom Object inside of Marketo that does. Here’s what it looks like inside of Marketo, labelled as ‘Salesforce Orders’ so we know what’s populated it.

We perform Person REST POST API to Create/Update records.

After inserting/updating a person record we use Custom Object REST POST API to insert/update Order data.

Step four: Set up the data flow within Google Cloud Platform

Here is what happens within Google Cloud to make the flow of data possible:

Cloud Function is capturing and mapping the data from Salesforce Connected App. Data is being matched with Javascript Object Notation (JSON)

Cloud Scheduler runs the Cloud Function every minute to get data from Salesforce and match it with Marketo Custom Object.

Google Storage stores the data temporarily in CSV format. This is only to stay compliant with any data storage requirements. It can be deleted on a regular basis.

Step five: Configure Marketo to send emails

Velocity scripting allows you to bring in the Marketo Custom Object fields into your email HTML. They first need to be set up as Script Tokens.

ProTip: Transactional emails typically don’t contain marketing messages so you are safe to mark it as “Operations” thus removing the unsubscribe link.

We configured Marketo to send an email when an Order is Added to a Person and when an Order is Updated.

Final Thoughts

The power of Marketo marketing automation realizes its full potential when you leverage these advanced capabilities. You can send both marketing and transactional emails and bring together data points from different systems. At Macro we love to tackle some of these more advanced challenges, so give us a shout if you need an extra hand.

You Might Want to Also Learn About:

What B2B Marketers Needs to Know About Apple's New "Mail Privacy Protection"

Apple announced during this year’s Worldwide Developer Conference that the upcoming iOS 15 will have a Mail Privacy Protection feature. This is super important for digital marketers to know and reevaluate the metrics they focus on. In the Mail app, Mail Privacy Protection stops senders from using invisible pixels to collect information about the user. […]

Marketo & Salesforce Sync Health-Check

A comprehensive way to check how Marketo and Salesforce sync data and what issues you should check for In this article you will learn how to troubleshoot the data syncing between Marketo and Salesforce. Learn how your CRM and marketing automation platform can better operate in tandem. By taking a look under the hood, you […]
Macro makes it easy for companies to grow and scale their operations. Creating alignment between sales, marketing and tech, our experts enable companies to make better data-driven decisions.