Modules not committing changes mid-scenario?

I’m using the HighLevel module a couple times in one scenario. But I think there’s a problem with Make overwriting the first Update Contact with the second Update Contact’s tags.

I’d expect this overwrite for CRM text fields, like name or address. But tags are an array of tags that you should be able to keep adding to throughout a Scenario, no?

Or how to I force a commit mid-scenario?

This scenario is meant to potentially add to the same contact’s tags at two different steps. If both Routes are true, then all three tags are expected in the CRM.

Route 1. Add tags A & B.
Route 2. Add tag C.

However, what happens is if both Update Contact modules run (route 1 then route 2), then only route 2 (Add tag C) shows up in our CRM. But when only the route 1 Update Contact module runs, then tags A & B show up (as expected).

When both modules are executed :point_down:. This results in only the step 2 tag to be set in the CRM.

You can see the output from step 1 with the two tags (A&B) :point_down:

And you can see the output from step 2 with the one tag (C) :point_down:

However, in the CRM only the step 2 tag shows (when both modules are executed) :point_down:
Screenshot 2023-04-09 165144

This works fine when only step 1 runs.

I will need to review the API document of GoHighlevel to be certain about it. It might be issue on either Make end or GHL, but I think the Update API doesn’t add new tags specified on it and instead replace it with new ones.

So, If your first Route, Adds Tag A & Tag B and other route adds Tag C, then only Tag C is reflected.

2 Likes

The API document in unclear on this so,

Can you try this API or check if it is already there in Make for Update Tag of Contact and see how it reacts?

You can use Make an API Call and see if removes the tags or just updates tags in GHL for specified contact.

2 Likes

I tried testing direct to the API but it turns out I needed a higher plan. So back to the Make modules for me :grinning:.

It does seem to replace instead of add when multiple Update Contact calls are made. Even across scenarios, as I’m testing the same scenario over and over, the tags are being replaced with the latest ones. Yeah it’s hard to tell if that’s on HighLevel or Make’s side of things.

I’ve had to take a different approach and pre-create an array of tags before any Update Contact is called. This way the same array is used for all of the updates. It’s slightly more complicated but it works. :+1: :partying_face:

Thanks for your advice. Sorry I couldn’t test the direct to API approach!

1 Like

@Runcorn I had a moment to do more testing with GoHighLevel API. The Update Contact does in fact update the entire record. So if we put tags into the Update Contact module, it will replace all the tags with what it entered into the module.

That’s where GoHighLevel’s Contact Tag API comes in. This adds tags to the contact and doesn’t replace anything. The return JSON is a list of all tags (including the new ones added).

I’ll have to go through all of my scenarios to fix this so I’m not overwriting tags. Do you know who to contact within Make.com to request these other contact APIs to be added? Or at least for the description in Update Contact to say “overwrite” or something?