Duplicated Salesforce Contacts (Update vs Create)

Hi everyone,

I’m building a scenario in Make that connects Gmail → OpenAI → Salesforce.
The intended logic is:

  1. Search in Salesforce by Email (SOQL).

  2. If the contact existsUpdate the record.

  3. If the contact does not existCreate a new record.


:magnifying_glass_tilted_right: What happens now

  • The Search Records (SOQL) [#9**]** module works:

    • If the email exists → it returns the Record ID.

    • If it does not exist → it returns 0 bundles.

  • The Router is configured as follows:

    • Update branch (#11**)** → filter: exists(get(9; "Record ID"))

    • Create branch (#24**)** → set as fallback.

Problem:

  • The scenario sometimes creates duplicates (runs Create even when the record already exists).

  • On the Update branch, I often get this error:

    BundleValidationError: Missing value of required parameter 'record'
    
    

What I’ve tried

  • Filters using exists(get(9; "Id")) and also not(exists()).

  • Router with Fallback enabled and disabled.

  • Mapping the Record ID directly from Search (#9) to Update.

  • Using both simple and advanced filter formulas.

But I still face the same issues:

  • Either the Update fails due to missing record,

  • Or the Create module runs unnecessarily and duplicates contacts.

Question

What’s the correct way to design this flow so that:

  • Update runs only if the Search module returns a record.

  • Create runs only if the Search module returns no records.

  • No duplication and no missing record id errors.

If anyone can share an example (screenshot of filters or exact formula), that would be super helpful.

Thanks in advance!


Up date at 18-08-2025 at 18:46 : I find the way. Thanks anyway :folded_hands:

Welcome to the Make community!

We’d love to help, however, you have not provided sufficient information to demonstrate the problem that would allow us to reproduce the scenario and any issue/s and/or error/s.

To allow others to assist you with your scenario, please provide the following:

1. All Relevant Screenshots

We need to see what you’re working with to give you the best advice. Screenshots are extremely important because Make is a visual editor — a picture provides us with more context.

It would help us identify the issue by having screenshots of:

  • the full scenario,
  • any error messages,
  • individual module fields,
  • relevant filter settings (conditions), and
  • each module’s output bundles
  • any external services (spreadsheet headers, sample data, regex101.com, etc.)

You can upload images here using the Upload icon in the text editor:

We would appreciate it if you could upload screenshots here instead of linking to them outside of the forum. This allows us to zoom in on the image when clicked, and avoid tracking cookies from third-party websites.

2. Scenario Blueprint

Please export the scenario blueprint. Providing your scenario blueprint file will allow others to quickly recreate and see how you have set up the mappings in each module, and also allows us take screenshots or provide module exports of any solutions we have for you in return - this would greatly benefit you in implementing our suggestions as you can simply paste module exports back into your scenario editor!

To export your scenario blueprint, click the three dots at the bottom of the editor then choose ‘Export Blueprint’.

You can upload the file here by clicking on this button:

3. Module Output Bundles

Please provide the output bundles of each of the relevant modules by running the scenario (you can also get this without re-running your scenario from the History tab).

Click on the white speech bubbles on the top-right of each module and select “Download input/output bundles”.

A. Upload as a Text File

Save each bundle contents in a plain text editor (without formatting) as a bundle.txt file.

You can upload the file here by clicking on this button:

B. Insert as Formatted Code Block

If you are unable to upload files on this forum, alternatively you can paste the formatted bundles.
Here are some ways to provide text content in a way that it won’t be modified by the forum.

  • Method 1: Type code fence manually
    Add three backticks ``` in a separate line before and after the content, like this,

    ```
    text goes here
    ```
    
  • Method 2: Highlight and click the “preformatted text” button in the editor

  • Method 3: Upload your file and share the public link
    (this method is only recommended for large files exceeding the forum upload limit)

Providing the input/output bundles will allow others to replicate what is going on in the scenario, especially if there are complex data structures (nested arrays and collections) or if external services are involved, and help you with mapping the raw property names from collections.

Sharing these details will make it easier for others to assist you.