Zapier - update CMS live items via update csv

Hello, bit of a Zapier Newb here and I was wondering if the following is possible?

When a csv file is updated (uploaded to say dropbox and the old one is overwritten ) I want it to trigger something like google sheets which detects its changed and pushes the data (columns and cells) to a live webflow cms item.

So
Dropbox (trigger) Google Sheets (trigger) webflow (Action)

Note ive already got it working from google sheets to webflow cms live item but i cant figure how to make it trigger when the actual csv file is overwritten only when a row or cell is updated on the current csv.

Is something like this possible?

Cheers
Sveky

4 Likes

I’m following this topic. I’d like to know if we can push Webflow form submissions to update an already published CMS item.

Im trying to update a live item, but i get the Invalid ID (400) problem - i need to select “Item” in Zapier, but i don’t have a variable for “Item”. Where can i find this?

2 Likes

I’d like to know if we can push Webflow form submissions to update an already published CMS item.

You can do this! The trigger is the new form submission and the action is update live item.

1 Like

Did you ever solve this?

1 Like

Not yet, but still hoping this gets possible asap. If updating e-commerce stuff, which is possible, I think updating ‘regular’ CMS items should be easily possible…

2 Likes

Ya, I have the same issue… Not really sure what to put in the “Item” field. I put the webflow ID and the test worked… but when I update rows it never updates on webflow.

Inside the update live item action. What should we use for the require item field?

1 Like

Hi @MadeByMarius,

I’ve gotten a little bit further, but unfortunately there is a ‘wall’ that i hit.

Bottomline:

You can only get the ID of (new) items if you also have a Zap for “create new item”.
There currently is no way to get newly added items in Google Sheets for example to sync on changes or new rows.

I haven’t set this up yet, but i believe you need 2 multi-step Zaps.

  1. A Zap “Create new item” that adds a new Webflow CMS item when a new row is added in Google Sheets. This is the only way to get the (new) Item ID (or _id in the API). When this is being created, you need another step to add this Item ID to your Google Sheet as well, so when doing future updates/changes Webflow knows exactly what Item needs updating.

  2. The second Zap is “Update (Live) Item” which can check other changes in your (existing) Google Sheet. It should then also have a column with the Item ID, and with that ID you can update a (Live) CMS item in the Webflow CMS.

If you already have items in your CMS/Collection in Webflow, then you need to use the API to retrieve all the Item ID’s (it’s called _id) and add them manually to your Google Sheet. Unfortunately there’s a limit of 100, but with an extra parameter “Offset” you can run the command multiple times if you have more than 100 items.

Then you need to get the (JSON) data merged into a temporary new Google Sheet and (carefully) merge the _id’s with your actual Google Sheet.

I have requested to get more functionality out of this.

I think more people start filling a Webflow Collection manually at first, or do a CSV import. But by doing so, you will get into quite the trouble if you want to sync this collection in the future.
I’d like to be able to get a new action in Webflow that can find the right Item ID, with the help of the “Item name” or possibly other variabel (your own custom ID# f.e.)

The workflow/sync does (only) work properly when you populate your Webflow Collection with Google Sheet data from the start - currently you can only get the Item ID when doing a “Create Item”.

The work around with the API, exporting the data and then reimporting into Google Sheets is quite the hassle, especially if you have more than 100 items.

3 Likes

Thank you for the answer unfortunately I ran into a even bigger wall. My data source is not Google sheets it’s Redash. Which holds a bunch of our live production data from our larger site. Unfortunately we can’t have Webflow write to that service, so I can’t have Webflow push the row ID to redash, therefore, I don’t think this would be possible for me. I’ll have to figure out a manual way of doing it unfortunately. Thanks for your help.

Perhaps you can add a ‘middle-station’?
Like let Webflow write to something like Google Sheets, and let Redash read Google Sheets and update it’s database from there?

This is however a nice example of a situation that also has extra needs to read/write Item ID’s.
Please let Webflow know what you would need/want - or Zapier for that matter - they might know of a workaround.

For those looking for a solution to updating live items in a collection with #nocode here’s how I did it with just Zapier.

  1. Create a form in Webflow to capture data (or spreadsheet or any data source Zapier supports) then setup the first step of your zap get the data.

  2. Create a Webflow collection with whatever data fields you want, but make sure you create a field called “Item ID” or whatever you prefer and leave that collection field empty and not required (I don’t recommend just “ID” because it will confuse you later).

  3. Use the “Create Live Item” step to turn your data from the first step into collection items. Map it all how you want. You wont link any fields to the “Item ID” field yet.

  4. Create another step to “Update Live Item”. This is the third step in your zap (FYI you’ll have to pay for a Starter plan to use 3 or more steps). Now in this step choose the data output from the previous “Create Live Item” step and you’ll see that the ID of the new live item is now in the list to choose from! (This is why you don’t want to label your custom field “ID” in step 2 above because you won’t be able to tell them apart) Map this ID to the “Item” field AND map it to your custom “Item ID” field so you can use it later.

Boom. That’s it. Now you can create more zaps that can update live items because you’ve saved the Item ID in your own custom field that will show up in any new zap!

6 Likes

Thanks, @jmonson! This was extremely helpful.

@jmonson Thanks for that. The question I have is what if the Item creation in the webflow CMS goes as the last thing in the flow. What would be populated in item ID?

Here is my flow: JotForm submission => Airtable Entry => Webflow Create Live Item (via Zapier). Now the problem is that it’s sort of chicken and egg, as whilst Webflow creates item, it already asks for item id in Zapier, but the entry hasn’t been created yet! Wonder how to solve this.

Thanks so much. Your method worked! One thing I should add is that in step 2, you need to not only create an “Item ID” collection item in Webflow, but also an “Item ID” field in whatever app or spreadsheet you are trying to connect.

If you’re having issues getting webflow’s “item ID” into your DB (sheets, airtable, etc) here’s one solution that might work for you: How to batch process Webflow item IDs using Integromat - YouTube

1 Like

For me a 5th step was required… I integrated my webflow with a user-management platform memberstack. and my steps to do this were as follows:

  1. create a CMS on webflow with a “custom ID field” as well as a field on webflow (or whatever else you’re using) called “custom ID field”
  2. webflow form sends data to memberstack
  3. memberstack creates an account
  4. using zapier, create a webflow CMS from the memberstack account info
  5. using zapier, update the webflow CMS using the custom ID field
  6. using zapier, update the memberstack account to make the custom ID field match the custom ID field in webflow.

Now there is a matching custom ID field which ALSO matches the ITEM of each webflow CMS…

Exactly what I needed and worked brilliantly, not sure why Webflow made it so hard to use the Item ID but this is a great solution.

Thank you so much!

Wow. Mindblown. I just scratched my head over this for 2h. Thank you.