Artisan SVG > XLSX Helpers (xlsx-helpers)
Artisan IMG > Marketo (marketo)

Export leads from an Excel file to Marketo


This is a 'Workflow' template which means that it is a single standalone workflow.

Some workflow templates can be modified to work with other workflow templates - e.g. to convert a data sync between two services from uni-directional to bi-directional


The purpose of this workflow is to capture leads from an Excel / XLSX file and use these to create and update contacts in Marketo.

This workflow is fired every time a Excel / XLSX file is added to a Tray form:


To implement this workflow, you will need the following:

  • API credentials for Marketo

  • An Excel sheet with the correct column setup. You can use this template to set up your Excel file.

Getting Live

Click Use Template to deploy the template in your chosen Workspace.

Then take the following steps to configure the workflow and start submitting leads for processing:

The workflow will then start the process of pulling the leads into Marketo.

Key workflow steps

The following diagram gives a simplified breakdown of the key steps in the workflow:

Format XLSX

These steps convert the form data into an Excel format which is later converted into a Excel / XLSX file so that each row can be looped through and dealt with individually.

Data mapping

The workflow uses the Data Mapper to dynamically respond to the 'Lead Source' in the Excel / XLSX file and maps it to a machine-readable format:

Organic Search --> ORGANIC_SEARCH

Paid Search --> PAID_SEARCH

Email marketing --> EMAIL_MARKETING


This can then be passed to the Marketo 'Lead Source' (hs_analytics_source in the Marketo API) when creating / updating contacts.


This Object Helpers step transforms the Excel / XLSX column headers into a standard object with fields in the following format:

First Name --> first_name

Last Name --> last_name

Lead Source --> lead_source


Note that the actual value for Lead Source ('Paid Search', 'Referrals' etc.) is mapped according to the data mapping section above.

For each lead we will then have a simple object which can be easily accessed by later Marketo steps using jsonpaths such as $.steps.object-helpers-1.result.first_name:

Email validation

The lead’s email address is validated for the appropriate format.

Push Lead

A search is made for an existing lead in Marketo using said lead’s email address as the unique identifier.

If a Marketo lead does exist, the contact record is updated.

If a Marketo lead does not exist, a new contact record is created.