Only Create Salesforce Leads From Pardot (Existing Customers as New Leads)

By Andrew Cook

We’ve been thinking about how some organizations don’t fit the mold that’s typical for Pardot (Account Engagement) customers. How you handle existing Contacts when they return, depends on your business operations.

Reasons to send someone back into the lead lifecycle is based around the need to re-qualify – their circumstances may have changed, a previous Opportunity was “Closed Lost”, or the sales team (working Opportunities) want to ensure qualification remains robust. Also, as I will explain, customers don’t always have a clear point of contact at your organization.

Lead life cycles can vary when an existing customer submits a Pardot form. Lucy and I have worked for organizations who wanted to run these unconventional approaches in Pardot and Salesforce.

Here are the two scenarios we wanted to share. When an existing customer submits a Pardot form, either:

  • Restart qualification (this guide): Form submissions should become Lead records, and go back through the lead qualification process. This is typical in larger B2B organizations where there are both business development (working Leads) and sales teams (working Opportunities).
  • Accelerate to Opportunity: A new opportunity should be launched following a form submission. Pushed into your sales pipeline, repeat customers will receive a faster response from the sales team.
READ MORE: Manage Repeat Customers with Salesforce + Pardot (Account Engagement)

Leads Are Straightforward – What About Contacts?

In an ideal world, Salesforce Contacts and Accounts will have one owner. If a prospect or customer wants to get in touch, they will know who to reach out to. The call or email will get logged as an activity against the Contact record. Simple, right?

Many of us do not live in this ideal world, but one where Contacts and Accounts have multiple owners, covering different regions, and specializing in different products or services. Even if a contact has a single owner, the individual may not necessarily know who that is, or the best way to get in touch.

Leads are straight forward. Someone has a query, they fill out a Pardot form (or form handler), the Salesforce lead assignment rules pass them to the best sales rep.

It’s simple and it works, and in my experience, the more simple a process is, the better!
Our business wasn’t going to change how it operates. We weren’t suddenly going to tell sales that Contacts and Accounts would now have a single owner because:

  • Accounts have multiple owners depending on where they are in the world.
  • Contacts have multiple owners depending on the different products they have bought over the years.

These are the challenges we faced when rolling out Pardot. We did, however, have a saving grace – our simple Lead process. So, we tweaked this process to get to a resolution.

This guide will show you how to override the default Salesforce-Pardot connector behavior (that syncs prospects to the original Contact record, if it exists). It’s worth investigating if creating new Leads, per enquiry, makes sense for your operations, and isn’t going to skew the metrics that are important to your teams.

Step 1: Create a Salesforce Campaign for Pardot Forms

Create a Campaign in Salesforce, which will have the Pardot forms associated with it.

Step 2: Configure Campaign Member Statuses

The Campaign Member Statuses for the Campaign need to be added/edited. The status is what will fire the Flow to process these members.

Keep the terms generic, and in line with your Campaign Member naming convention. “Responded” is what we decided to go with.

READ MORE: Tips for Working with Salesforce Campaign Member Status

Step 3: Add Completion Actions

Add a completion action to the form/form handlers you’ve singled out:

  • Edit the Pardot form, and go to “Step 4: Completion Actions”.
  • Scroll down, and add a completion action: “Add to Salesforce Campaign” — [Name of the Campaign] — with status “Responded”.

Step 4: Flow Builder

This Flow is fairly straightforward. To start with, create a record triggered Flow, which will be triggered when a record is created or updated.

For entry requirements, select None. Optimize the Flow for Actions and Related Records.

We will design this process to fire when an existing contact is added as a campaign member, and not a new lead; in other words, if a lead is added to this campaign, the process should not run.

To do this in Flow, add a Decision Element. In this element, we need the following criteria being met. This means that the Contact ID for the Campaign Member record is being set and the Status is Responded.

Finally, you need to tell Flow Builder to create the lead record, and what data that lead should contain. We do this by referencing the existing contact record, and the existing contact fields will be copied on to the new lead’s fields.

A few words of warning: because this is done via the campaign member object, you need to make sure you lookup to the correct values. Lead and Contact fields that have the same purpose have different names; a good example of this is Company vs. Account Name. Then there’s also ensuring that you drill down to the correct objects; taking Company again, the lead record will need to take the value {!$Record.Contact.Account.Name}, which means looking up from the campaign member to the contact, then again to the account (campaign member → Contact → Account). However, for other fields there’s less hassle, for example, with Last Name, you only need to from the campaign member to the contact {!$Record.LastName}.

Something very helpful is to add a short note in the description for your users to say that this is an existing contact that has returned to the start of the lead lifecycle. You can use a formula like the below in the description field (make sure to amend the URL so it works with your org:

“This is an existing contact:”&{!$Record.Contact.Id}

Your final record create action will look similar to the image below, of course adding your own specific requirements:

Step 5: Test the Flow

Once the Flow is finished and activated, you need to test it to make sure everything is working as it should be.

If done correctly, once an existing contact submits a request through one of your forms, a lead should be created which then gets assigned automatically using your lead assignment rule.

Leverage the “Debug” button and update a record of your choice.


Organizations rarely operate the same, however, the Salesforce-Pardot is designed with a particular lead management process in mind.

This guide has shown you how you can adapt your Pardot and Salesforce instance to create new Lead, following a form submission – regardless of whether this person exists in your Salesforce database as a Contact. Pushed back into your lead lifecycle, they will go back through the qualification process.

On a side note, this tutorial is a great introduction to Salesforce Flow because you are tasked with creating different elements.

The Author

Andrew Cook

Andrew is a Salesforce Technical Instructor at Salesforce Ben. He is 14x certified and has worked in the ecosystem for 12 years.


    April 10, 2020 6:56 pm
    I'm running into this problem with existing customers filling out forms and their form data essentially being ignored because their request doesn't show up as a Lead or Opportunity. I did try activating this Process but was unsuccessful. I don't know why there is not enough information on this use case. I think it's pretty natural for B2B customers to have multiple requests after the initial sale. Can you provide me with more guidance? Would you be interested in contracting to help write this Process with me?
    Lucy Mazalon
    April 13, 2020 2:23 pm
    Hi Ron, sorry that you weren't successful with the process in this post. It's something I've worked on before as a consultant, if you would like more information please email me at
    Stacy Wennstrom
    May 06, 2020 7:56 pm
    We are facing this same issue now but are using HubSpot and Salesforce. We are trying to find a solution to manage existing contacts who submit a lead form - it appears that HubSpot cannot create a lead when there is already an existing contact. We have never gotten the Salesforce task trigger to work perfectly - and often the contact owner isn't correct so tasks are assigned to the wrong person. Our inside sales team has requested using cases to alert them of form activity on existing contacts but I am not a huge fan of that idea. Do you have an ideas or resources on how to remediate this issue with a HubSpot and Salesforce integration?
    Lucy Mazalon
    May 07, 2020 12:10 pm
    Hi Stacy, gosh...that sounds frustrating. Already sounds like you have tried a variety of things (some of which I would have otherwise suggested). I will ask around people I know who have Hubspot experience too, maybe we can come up with something additional to test.
    April 08, 2021 8:04 am
    Hi Ron, Did you finally resolve this? We are also facing the same problem, if you could pass on some infor would be greatful. Thanking you, Regards Aroop
    Stacy Wennstrom
    April 08, 2021 1:32 pm
    Thanks, Lucy. We did end up using cases and the notification problem is resolved. Tracking is a little trickier, but it's working for us for now!
    Debra Margagnoni
    April 09, 2021 3:47 pm
    This is fabulous! I've only worked in industries with this business process and it's always tricky. This is the first article I've found that discusses the challenge. Thank you!
    Meghan Ferrie
    December 07, 2021 9:29 pm
    Is there any way to map the lead to the existing contact/account if it is converted to an opportunity?
    December 16, 2021 1:52 pm
    What if someone's deletes this campaign? How can you associate the whole business automation process with a record? This is not a best solution.
    Monica Moore
    December 20, 2021 3:28 pm
    I trying this we encountered syntax errors with step 4, Define Criteria for this Action. Did anyone else encounter this? If so, I would be very interested in how you were able to correct. Thanks much!
    Praveg Sinha
    January 19, 2023 6:37 am
    We can create Contacts instead of creating a Lead record first to do this we only new to create a ticket to Pardot Support which will enable this feature for you, I did, and perfectly working on my org. Here is the article you can follow.
    March 22, 2023 10:22 am
    Hi, im runnig into an Flow error when trying to rebuild this. error occurs in Lead-creation action: INSUFFICIENT_ACCESS_OR_READONLY, B2bmaIntegration User cannot be edited: [] Any fast idea which permission could be missing?
    March 31, 2023 7:11 pm
    Will Pardot values sync with the newly created lead or remain with the Contact record?
    Peter Tiedemann
    June 09, 2023 1:25 pm
    We got errors when the flow ran and traced it back to the first condition of "checking that the Contact ID for the Campaign Member record is being set" . ITtwas always true, so the flow always ran even when it shouldn't have. Rather than checking if the Contact ID was being Set, we changed it to check if the $Record>Contact ID "is Null" "False". That solved the issue. However, now when the Flow runs we have an additional Prospect created, so we have duplicate Prospects now. Unfortunately our system was set up at the beginning to allow this, so it can't be changed now. Any ideas on how to fix this and not have the 2nd Prospect created?
    Jasmin Gölzenleuchter
    March 22, 2024 6:02 pm
    We have a similiar set-up, that we would create a duplicate lead also for an existing contact. But we have run into problem, if the lead is actually disqualified, that we end up with potentially 4 Disqualified Lead, 1 Open Lead and 1 Contact for the same record. When implementing lead scoring that caused a big issue. Any thought around this?

Leave a Reply