How to update a record if it exists and create one if it doesn't (upsert function)

Hello!

Many third party automation tools (Zapier, Make.com) have an “upsert” function. Basically, this means to update a record if it exists and create one if it doesn’t (see article like this one).

Here’s the situation I’m trying to solve:

  1. I have an “events registration” board where people can sign up for an event using a Monday.com workform.
  2. I have a “Contacts” board which houses all of my contacts (such as name, email, phone number, address, etc.).
  3. Each new “events registration” board has a connect column that two-way links to the “Contacts” board.
  4. Each time someone signs up for the event, an item is created in the “events registration” board.
  5. I’d like for the new item to get “upserted” into the Contacts board. The process would like this like: run an automation to a) search the contacts board by the email field, b) if it finds an item with the same email, update that item with other contact info like phone, address, gender, etc., c) connect the contact item back to the event registration item. D) but if no item is found in “Contacts”, then create new item in Contacts and e) connect the contact item back to the events registration item.

Is this possible?

So far I found this article telling you how to check if a duplicate item exists in another board.

Thoughts?

I don’t know why, but Monday.com automations try to avoid updates. Basically it’s impossible to update an existing item via automation.

What you can do, is check whether the duplicate exists (with the automation recipe you just linked) and if it doesn’t exists, create a contact.

But updating a contact is impossible without using the API and third party applications.

Really would like to know from the monday Team on why they avoid update functions.

Even the workflow builder does not have the ability to use placeholders to update existing items for some reason. It would make things so much easier.

Hi @paulmatsushima , zzBots can handle data similar to “Upsert” but it is applied with the “Automatic Sync Mapping” feature. zzBots keeps track of each record ID and matches it to the corresponding record in your sync so it knows whether to create or update a record automatically. This way your items will stay in sync and up to date and in realtime.

You can limit which fields trigger the bot when changed and specify which fields will be updated on your other board.

@shayan.moussawi mentioned that its tricky to update existing items, but with zzBots Batch Sync you can trigger your bot on all pre-existing items to sync them to your other board or whatever steps you decide next.

If you need help just chat with us on our website. https://www.zzbots.com/

This will help when setting up your bots: How to Insert Values Into Your Bot

1-Way Sync: https://www.zzbots.com/store/mondaycom-mondaycom-1-way-sync

2-Way Sync: https://www.zzbots.com/store/mondaycom-mondaycom-2-way-sync

Hi Paul,

This is very possible with Make and something similar to this is even possible with monday.com automations. The process is a little involved, but please reach out to me and I’d be happy to help you configure this in a free consultation meeting.

If you want to try yourself, my approach would be to set up the connect automation that monday.com uses and then have an additional automation that runs daily. If it finds that there is no connection made, it would create a new contact. This will give you a delay of up to one day before a contact is created (this sounds tolerable to me, but it may not be depending on your use case).

Alternatively, a third party tool such as Make could perform the check instantly.

You can use the Duplicates and Uniques merge functionality for that. Here is a demo on how it works.