Overview
The purpose of this workflow is to capture leads from Facebook Lead Generation Ads and use these to create and update your contacts in Salesforce.
This workflow is fired every time a Facebook Lead Ad form is filled in and submitted:

Prerequisites
To implement this workflow, you will need the following:
- API credentials for Facebook Business and Salesforce
- You have a verified developer account for Facebook with the ability to create apps for your business
Getting Live
Click Use Template button 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 Salesforce.
End Result

Key workflow steps
The following diagram gives a simplified breakdown of the key steps in the workflow:
Transform Facebook Form
The workflow uses the JSON Transformer to dynamically reformat / restructure the Facebook Lead Generation Ad data and map it to a machine-readable format.
Below demonstrates how the value email is mapped to the value test@fb.com.
This can then be passed to the Salesforce 'Email' column when creating / updating contacts.
{
"result": {
"email": "test@fb.com"
}
}
Standardize
This Object Helpers step transforms the Facebook Lead Generation Ad data into a standard object with fields in the following format:
First Name --> first_name
Last Name --> last_name
Lead Source --> lead_source
etc.
Note that the actual value for Lead Source ('PAID_SOCIAL' 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 Salesforce steps using jsonpaths such as $.steps.object-helpers-1.result.first_name:
Validate Email
The lead’s email address is validated for the appropriate user@domain.com format
Create / Update contacts
A search is made for an existing contact in Salesforce using the lead’s email address as the unique identifier.
If a Salesforce contact exists, update the contact record indicating that they interacted with a Facebook Lead Generation Ad.
If a Salesforce contact does not exist, create a new contact record using the standard object and indicate that they interacted with a Facebook Lead Generation Ad.