Question

Zapier Transfer to Salesforce: Cannot update existing record?

  • 29 December 2022
  • 11 replies
  • 337 views

Hello!

I am trying to use Zapier Transfer mechanism for a scheduled transfer TO Salesforce weekly FROM another app. Essentially, the email id of the Salesforce Contact is a foreign key from the source app, thus I pull data based on a criteria, but then I need to update the corresponding record having that email id in Salesforce.

Note, typically this record already pre-exists in Salesforce and I’d like to update a few fields in that record, such as “Sales Activity Response”. Record Creation is not a desirable option.

Now, the way Transfer UI is set up, I can:

  • Select “Update Contact” or “Update Record” in Salesforce,
  • Connect to the appropriate Salesforce instance,
  • Select “Custom Value” , 
  • Enter a custom value. Here I copy the email id incoming from the “other app”.

The issue here is that there is no “predefined key” on which search happens in Salesforce. You can conduct a search using Email field but you need to prescribe it somewhere.

The question is, how will the Transfer Gods understand that it’s an email id they should search on?

Overall, this does not seem like a well-thought-out mechanism and the only workable way seems to be to create new records. Sadly, not acceptable. This would generate duplicates in Salesforce and will create a major headache to dedupe weekly. The utility of Transfer is nullified by this additional burden.

Is this understanding correct? Or is there a way to set the search field AND the search value? Compare this to “Find a Record” action in regular zaps for Salesforce. Here you can select an object, select a search key and a set a search value that is copied from incoming data. 

Any thoughts? Suggestions? Thank you in advance!!

             

 


This post has been closed for comments. Please create a new post if you need help or have a question about this topic.

11 replies

Userlevel 7
Badge +14

Hi @ClayPotter 

Good question.

Transfer currently only supports 2 steps: trigger + action

If you need to do additional steps (e.g. Salesforce Find Record), then you will need to use a Zap.

Hi @Troy Tessalone :

I don’t intend to use “Find a Contact” per se, but when I am selecting “Update a Contact” as the transfer action in Salesforce, implicitly, I have to tell Salesforce how to match the Salesforce record with my incoming data (in this case, the incoming data has email id that can be used as the key). I was only giving the example of Find action because that action seems to be implemented correctly and adequately.

The issue here is that there is no way to set a Transfer to update an existing record within the destination system, because there is no way to set logic on how to locate a matching record. Although, I can select “update a record”. I tried to make the Email field External ID in Salesforce, but no luck, my transfer still failed.

In my opinion, this is quite basic, especially for those systems that provide a flexible search based on any column (which Salesforce does.) Does this mean that I cannot update a record in transfer, and the only transfer option is to copy and create a new contact in SF? 

This feature does not look complete to take care of even basic use cases -- or am I missing something?

 

Userlevel 7
Badge +14

@ClayPotter 

Try these Zap steps...

  1. Trigger: ???
  2. Action: Salesforce - Find Record
    1. Object: Contact
    2. Search by: Email
  3. Action: Salesforce - Update Record
    1. Object: Contact

 

Transfer currently only supports 2 steps: trigger + action

If you need to do additional steps (e.g. Salesforce Find Record), then you will need to use a Zap.

Userlevel 7
Badge +12

Hi @ClayPotter!

To update a record in Salesforce using transfer, you need to use the ID of the field and it’s not possible to use something like email. The ID that is needed is the Salesforce record ID, which is a long string of text and numbers. The screenshot below is from a Zap step (rather than transfer), you can see the record ID indicated by the arrows. 

 

Is there anyway that you can add this record ID into the app from which you’re transferring the data? That would be the only way to be able to update the records using Transfer. 

 

​I hope that helps, please let us know if you have any questions!

@Danvers  and @Troy Tessalone : Looking at the solutions you are suggesting, I am seriously wondering if my Transfer screens look different from yours. Because what you are suggesting, e.g. Find a record, etc. is not available on my Transfer screen.

It is possible for me to save that Salesforce Record ID in the source system using a custom field.

However, I don’t see a way to “specify” this lookup logic in Transfer. For example, this will most likely be a custom field in the source system. For that reason, the Transfer process will not automatically know which field to search on. 

Essentially, here is what you need: you need a way to specify “update”, then the field to be updated, and the value to be searched -- and this is where you will set the source system’s custom field holding the ID.

I think if you go through the motions to try to set this logic using Transfer, you will be able to understand the issue I am facing.

TIA!!

Userlevel 7
Badge +14

@ClayPotter 

Transfers can only be 2 steps currently (trigger + action).

If you need additional steps (3+), then you will have to configure a Zap instead of trying to use a Transfer.

So unless you already have the internal Salesforce ID in the Transfer source app to map into the Transfer destination app, then you’ll need to use a Zap.

 

Try these Zap steps...

  1. Trigger: ???
  2. Action: Salesforce - Find Record
    1. Object: Contact
    2. Search by: Email
  3. Action: Salesforce - Update Record
    1. Object: Contact
    2. Map the Contact Record ID returned from step 2

@Troy Tessalone : Thank you for your patience. I see what you mean now. 

Unfortunately, my scenario does not lend itself well to using a Zap, which typically fires based on a change event. My scenario requires a periodic bulk transfer. I am familiar with the Scheduler and polling-based data fetch within a regular zap, however, there again are roadblocks, like the Code by Zapier can only pass on up to 250 records in one shot (I have not seen that limit bumped up, and was told there was no plan to bump it up). 

 

All in all, heading to the support page and entering a few Transfer feature enhancement requests. :-)

Userlevel 7
Badge +14

@ClayPotter 

Why not use a GSheet or an Airtable base to prep and trigger the data for Zaps?

Hi @Troy Tessalone : Two reasons:

  1. That would still require a Transfer operation, but I see your point that I can create a brand new sheet each time and just dump the data in the sheets. 
  2. The task usage goes up because I am now using a third system - though I don’t know if I should be so miserly about this!!

FWIW, I am also considering the approach of actually triggering a “fetch” from SF. This way, an SF Zap (not Transfer) will fetch the record from the destination system and update SF record. A complete roundtrip, risky (because if not set up correctly, may lead to infinite loop) but worth trying.

 

Anyway, thank you for helping. Great conversation. I still think that Transfer can be made more useful by supporting these use cases.

Userlevel 7
Badge +14

@ClayPotter

I know many of use would like to see more improvements made to Transfer, but I wouldn’t wait around hoping those feature requests are made any time soon.

Userlevel 7
Badge +11

Hey @ClayPotter, that’s totally the right way to go here by submitting those feature requests!  

I’ve also passed your comments to the product team here to help make sure these improvements receive some extra attention. 😀