Update existing items + add new in Webflow CMS

Hi,

I need help figuring out a stable way to update my CMS collections in Webflow using an API via Parabola. Right now, every time there are new entries in the backend, I delete my entire Webflow collection and reimport using Parabola. Is there a way to only add in new entries since the last update, and automate that process using Parabola → Webflow? Ideally it would also allow existing entries to be cross-referenced with the newest API data and updated if needed. Thank you!

Hi @Delaney_Rua :wave:

Welcome to the community! It sounds like you’re looking for the “Find overlap” step to cross-reference collection items from your backend with existing ones in your Webflow CMS.

Try using this template to achieve that result:

The top “Find overlap” will remove any rows that exist in your backend and Webflow, resulting in new items being added to your CMS.

The bottom “Find overlap” will keep any rows that exist in your backend and Webflow, resulting in existing items being updated in your CMS.

Let me know if that helps!

Hi Daniel,

Thanks so much for this help, I’ll try it out and see if it works!

One quick question:
In instances where some aspects of a collection item have been edited (say, a typo) in the backend, would this not also filter those out considering they are changed, and not delete them? It seems then that this flow would produce a duplicate collection item with the minor change, as well as retaining the original.

You’re correct. If there is a discrepancy like a typo, that will create a new collection item as well as retain the original collection item.

Ensuring the data is accurate will always help, but if there are some slight discrepancies, the Approximate match with accurate data should help.

You can set the approximate match percentage to a relatively high value. The example above shows a potential item from your backend matching with another item from your CMS with slightly different values!

This is perfect, thank you so much for the help!

Another way of doing it, in case it helps you or someone else who sees this.

For a job board I run in Webflow, I created a field called “Unique ID” (not the webflow item ID).

Then in Parabola I make a unique ID for each new job that is the “{Job Title} at {Company} on {Day Originally Posted}”.

Then I run the Find Overlap step using just that Unique ID field so that existing items are updated and new items (jobs in my case) are added.

The Approximate match method seems like a good way to approach this though, thanks for the tip @daniel .

Hi Brian,

Thanks for the alternative answer - that seems like a simpler solution given how much duplication of the data cleaning nodes I had to create for the orig solution.

I did have another question since my flow (using @daniel’s solution) keeps failing - I get this error when attempting to update existing CMS items, even though I am linking the Webflow ID to the ID column in Parabola. Maybe you know a solution?
Screen Shot 2021-05-28 at 9.19.19 AM

Hey Delaney,

Glad to hear it’s helpful.

Does your step look something like this?

You need the ID you pulled from your own Webflow collection to be the ID you push back out to it in the update step.

(I’m not sure why you might be getting that error without seeing the whole thing, just hoping one of these things covers your bases).

Last thing: are you sure you have a live Webflow CMS item with that ID?

Thanks for the quick reply - your example is the same as how my export settings are configured. Checking into my CMS collection items, the first published collection item has the ID in my screenshot, so I know it’s been imported and published. Could it be a data type error, as I have the ID field in Webflow as a text field rather than a number field? The IDs are alphanumeric, so it doesn’t seem so…

What do you mean by

I have the ID field in Webflow as a text field rather than a number field

The Webflow Item ID that we need is the default one, not a field that we can set a field type for.

The item ID you’re looking at in Webflow shows up looking like this in the CMS, right?

image

(In case this is the issue, I wrote a post about where to find IDs in Webflow).

Just took a look at this site - is there any need to use the API access to Webflow in Parabola given the “Pull from Webflow” node acts as the API pull? I created a text field to copy the “_id” field into for other data linking reasons, i.e. concatenating that ID to a URL for linking within Webflow, but should I just be referencing the original “_id” column in Parabola?

Ah, sorry, I wrote that before a “Pull from Webflow” step existed in Parabola. You’re right, you can use that instead.

I’d try it with the original _id field that the Pull from Webflow step gives you, that might work.