I’m building a Membership site with Webflow Memberships and Zapier.
I’ve run into two issues:
I’m inviting users to join the Membership with the Webflow API via Zapier. I add the users email in Airtable (where I also add their name and other information I hold on them as part of the record), this sets off a trigger in Zapier, when then creates the user account via the Webflow API (and updates the Webflow account with the users information, such as the Airtable record ID and their phone number if I already have this data). Issue is that when the user accepts the invite and logs in for the first time, when they load their account information page it is deleting/wiping the user account detail that I’ve passed into Webflow (which as I’m using Webhooks, then wipes the data I’ve got on the user in Airtable). Any suggestions?
When updating the user account via the API, there are occasions where certain fields in my Airtable databse are blank and I don’t want them to be updated. Issue is…if I pass these into the API as part of the Zapier trigger, I get all sorts of errors (for the fields in Airtable which are dropdowns and require a specific answer) and essentially the blank placeholder is rejected. Is there anyway I can pass a null/blank value via the API or do I have to use logic to remove the clause if the detail is not in the database.
#1 - Yes that’s the same behavior I’ve seen from the beginning. User data such as name and custom fields that are passed in on invite are overwritten during the sign-up process. Worse, none of the information you provide in the invite - including Name - is presented to the user on the sign-up page as they’re accepting the invite and creating their account- which makes that info useless.
There are only two pieces of information that persist from the invite- the user’s email, and the access groups. I usually just forget the rest and let the user supply it.
If you’re in the circle.so community for Membership BETA, here’s that post.
If you really need info to persist, you could try creating a “flag” field as a hidden custom user field. It will default to false. Then on the update webhook, always check it, and when you see a false one, you know that this is a newly enrolled user. You can apply your data then, and set the flag to true. It’s hacky but it could work.
#2 - I’d have to do some r&d on this, so I don’t have any answers for you. You might be able to have a default value “unknown” rather than a null, to pass the API requirements.
#1 Thanks, that is really frustrating. Essentially there is no way to import an existing membership database in that case, because as soon as the members sign in, your database is overwritten!
#2 That is what I’ve done for the time being, but not very elegant…
Have that Webhook trigger an automation with the included email that searches Airtable, finds that users info, and updates the Webflow Memberships record.
Done.
Now, the user is setup and Webflow won’t touch it. You can add what you like without them overwriting anything.
If you can swap out Make (Integromat) for Zapier, you’ll have an easier time of it all.
Also, I glossed over a few important points. One of them is that you’ll need to stop that Webhook trigger on every user update. You only want it on the first update.
There are several approaches to this but my favorite is with Make (Integromat).
You can filter before a scenario is run (the same thing as a Zap in Zapier) without being charged (unlike Zapier).
That works in terms of triggering an automation upon first login. You then can pass the data from Airtable back around to webflow to update the users account.
But then how do you distinguish between that, and a scenario where the user then updates their account details (e.g., at a later date) online…and you want to update Airtable.
Ah, gotcha. Keeping it in sync in both directions.
As you already know, you can add custom fields on the user account settings. What some don’t know (but maybe you do) is that you don’t have to display them on the account page, it’s optional from within the Webflow Designer.
Create one of these hidden fields.
For the first sync, Airtable to Webflow I’d set a flag (maybe “sync-to-airtable”) to true AFTER your Webflow user has been updated.
So… Webhook fires, you look at the fields passed to Make (Integromat) and decide what to do.
If “sync-to-airtable” is false (or blank) do nothing.
If it’s true, search for and update that Airtable record.
That’s high level, some details missing, but it’ll get you where you need to go
Yes that is essentially what I’m doing - I could simply use the AirTable Record ID (which I’m storing, but hiding on the Webflow account)…and essentially when there is no AirTable Record present I know this is a newly created/wiped account, and so I then trigger an update. It isn’t perfect, but that works.
In actual fact, the first trigger after sign up lacks a ‘last Log in’ token - and it is upon Sign Up that data is wiped from the account. So if I simply look for a webhook that lacks a last Log in token, ignore that, and then update from Airtable immediately, and thereafter once the Log in token is present. Not perfect but it works!