Webflow CMS Integration for Non-Profit Animal Shelter

I’ve attempted to research the Make.Com documentation, asking ChatGPT, and watching Make.Com YouTube videos with no success.

My Current Setup:

HTTP Make a Basic Auth Request Documentation:

https://sheltermanager.com/repo/asm3_help/service.html

My Goal: I am helping a non-profit animal shelter set up a website that hosts their dogs and cats using Webflow CMS. The way it works is that there is a Webflow collection that is designated for cats and dogs. They use Shelter Manager for their animal database. We want to pull animals from Shelter Manager and 1-2 times a day, use Make.com to send any new items to the CMS collection OR delete an animal from the CMS collection if it no longer appears in the Shelter Manager database. Related, I’d also like to update an existing Webflow CMS Item (animal) if there has been a change to that animal in Shelter Manager.

I want to add, update, and delete items to/from a specified Webflow CMS collection based on whether the data from the [HTTP Make a Basic Auth Request] module has been newly created, updated, or deleted. The [HTTP Make a Basic Auth Request] module produces about 105 bundles after it has been iterated through the [Iterator] module.

I am able to only do one of the above currently, which is to add items to a specified Webflow CMS collection. Every time I run the attached scenario, it will add new CMS items starting from the first iterated bundle by the [Iterator] module which is iterating data from the [HTTP Make a Basic Auth Request] module. This results in a new item being duplicated in the CMS collection that already contains said item.

I had thought that if I attached the unique IDs (20. ID:) coming from the [Iterator] module to a field (Pet ID:) in each Webflow CMS Item, I could then filter the data to go to one of three Webflow Create, Update, or Delete modules.

  • Create an Item: If there is not currently a Webflow CMS Item with a matching (20. ID:) value in the (Pet ID:) Webflow CMS Item field.
  • Update an Item: If there is currently a Webflow CMS Item with a matching (20. ID:) value in the (Pet ID:) Webflow CMS Item field AND the (20. ID:) still exists in the (20. ID) feed coming from the [Iterator] module (I wonder, though, since have gone through 15,000+ operations in three days trial and erroring that it might be best to just ignore rather than update? If this is possible)
  • Delete an Item: If there is currently a Webflow CMS Item containing a value in the (Pet ID:) field that no longer exists as a (20. ID:) in the iterated data from the [HTTP Make a Basic Auth Request] module.

I have tried multiple filters, tools, and arrangments to try to make Update an Item and Delete an Item work but have been unsuccessful. I have also been unsuccessful in setting my scenario up in a way that prevents duplicate Webflow CMS Items from being created.

Could someone please give me a little direction here?

Support replied with a link to filers when I asked about this issue.

Hi @n_c ,

I’m not sure if this works on your end as it’s quite difficult to replicate without a sample data but let me share to you what I usually suggest in cases like this. The flow would look like below:

The notes below are by sequence per routes/module:

1.) HTTP module - This trigger runs whenever the Scheduled sync runs, as far as I can understand, this retrieves the data from the animal shelter.

2.) Iterator module - You’ll need to map the Data or items array, or whatever the HTTP module outputs. You can tell that it’s an array when there are square brackets beside the field name. Example “Data” or “Items”. Purpose of this it to be able to iterate each of the items under the array.

3.) Filter after the iterator - I’m not sure if the items(s) from the HTTP module has this “Created date” or “Updated Date”. This is really important for the sync to only check what were recently updated or created, most importantly, to control the number of operations. without this “datetime controller”, this would repeatedly give you the same data over and over again whenever the sync runs which ends to a lot of operations usage.

The date time function would depend on how you often run the Scenario. Example, the schedule is to run every 15 minutes:

4.) Array Aggregator - Select Iterator as the source module then select the field identifier(AnimalShelter app) as this will be used for the filters to check if this item exists in Webflow or not. Example - Pet name/owner or any identifier we could use.

5.) Set Variable module - use the map function to turn the identifiers into a simple array. For example, array of names(identifier)

6.)Webflow List Items module - this will list all the items you have in Webflow.

7.) Array aggregator - Ths logic would be similar to point #4 but this time, including the identifier and also the webflow ITEM ID.

8.) Set Variable module - use the map function to turn the identifiers into a simple array. For example, array of WEBFLOW names(identifier)

9.) Iterator module - map the array from the first set variable module (point #5).

10.) ROUTER - so that we can sync to specific routes as each of the routes do have specific filters for Create an Item, update an item and then delete an item.

11.) FILTER > CREATE AN ITEM ROUTE - it would look like this:

12.) FILTER > UPDATE AN ITEM ROUTE

Then in the Update an item module, it expects the ITEM ID to update, right?
So in this case you’ll need to use the Get+map functions, here’s one of the community members who shared about this:

13.) FILTER > DELETE AN ITEM - I’m not sure what’s the identifier in Webflow if the item is deleted. the first filter condition would be the same in point #12 but you need to add the AND condition as well then set the “deleted” conditional parameters.

I understand this is quite confusing but I hope this helps!