Membership API - User Login Clearing Database

I’m building a Membership site with Webflow Memberships and Zapier.

I’ve run into two issues:

  1. 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?

  2. 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.


Here is my site Read-Only: https://www.arabscricketclub.com/
(how to share your site Read-Only link)

#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…

Yes, I’d definitely chime in on my post above in the Circle forum. it’s 7 months old, but it’s the best place to raise issues to the memberships team.

Welcome @kennedygus :wave:

Yea, you can do that.

You have to change up your approach to make it work.

Here’s the workflow…

  1. Add user details to Airtable

  2. Airtable triggers a Webflow Memberships invitation

  3. User receives email invitation and clicks through to registration form

  4. User fills out Webflow Memberships registration form

  5. Capture a “Membership Account Update” Webhook (use my Webflow Webhook Creator tool to make life easier):

  6. Have that Webhook trigger an automation with the included email that searches Airtable, finds that users info, and updates the Webflow Memberships record.

  7. 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).

Again, this totally doable. You just need to switch up your approach and use some better tools.

If you use Make (Integromat) it comes with easy to use filters:

You can also easily use a “Router” module to route your request to different modules based upon the filter (previous screenshot):

So if a field is blank you can route to a different automation that handles it in a better way.

Using Make (Integromat) makes the issues you’re bumping into fairly trivial to solve.

I have a bunch of tutorials and screencasts going through stuff like this on my blog that will be helpful to you: https://nocodequest.com

Hope that helps!

Thanks. I’m already using your Webhook Creator!

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.

:+1:

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 :+1:

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!