Creating An App On Zapier

This is great Lucien! Thanks for working all this out :slight_smile:

You beautiful bastard

2 Likes

@Lucien - Your guide is amazing and I hope that I can follow it and publish my Bubble App on Zapier. But I get stuck at this, see image below. I’ve sorted out Oauth2 but after that I try to create my trigger, don’t work.

I would be so happy if you can help!

Hi Mikke - I’m only a few months into Bubble so a bit green - but I was able to set up Zapier with the amazing content in this thread and may be able to help you out. I’ve been helped a lot by this amazing community and would love to give back. Let me know and we can connect and go from there.

I’ve configured things as per listed item by item, however I also am receiving an authorization error shown below:

Try 1: Authorization URL is as suggested: version-test/api/1.1/oauth/authorize
Error:

Oh, foo.

Zapier could not connect to your account.

The app returned “Not found”. What happened (You are seeing this because you are an admin): Stack trace: ResponseError: {“status”:404,“headers”:{“content-type”:“application/json”},“content”:"{“message”:“Not found”}",“request”:{“url”:“https://pointments.io/version-test/api/1.1/oauth/access_token”}} at Object.throwForStatus (/var/task/node_modules/zapier-platform-core/src/http-middlewares/after/throw-for-status.js:7:11) From previous event: at executeHttpRequest (/var/task/node_modules/zapier-platform-core/src/execute.js:22:6) at execute (/var/task/node_modules/zapier-platform-core/src/execute.js:90:12) at input (/var/task/node_modules/zapier-platform-core/src/create-command-handler.js:29:14) at Object.beforeMiddleware.then.newInput (/var/task/node_modules/zapier-platform-core/src/middleware.js:90:22) at bound (domain.js:402:14) at Object.runBound (domain.js:415:12) From previous event: at input (/var/task/node_modules/zapier-platform-core/src/middleware.js:89:45) at loadApp.then.appRaw (/var/task/node_modules/zapier-platform-core/src/tools/create-lambda-handler.js:215:18) at bound (domain.js:402:14) at runBound (domain.js:415:12) at runCallback (timers.js:705:18) at tryOnImmediate (timers.js:676:5) at processImmediate (timers.js:658:5) at process.topLevelDomainCallback (domain.js:126:23) From previous event: at Domain.handlerDomain.run (/var/task/node_modules/zapier-platform-core/src/tools/create-lambda-handler.js:200:10) at Domain.run (domain.js:349:14) at Runtime.handler (/var/task/node_modules/zapier-platform-core/src/tools/create-lambda-handler.js:192:19) at Runtime.handleOnce (/var/runtime/Runtime.js:66:25)

Try 2:
I modifed the Auth URL to be the Authentication URL - version-test/zapier_authentication
Error: You need to choose a connected account or send something in the authData property.

Any advice? Thank you.

Hey - happy to hop on a Zoom and compare setups. I ran into this too but can’t recall what the specific fix was… it’ll probably come to me if we look at it.

1 Like

Hey all, I realize I haven’t shared the refresh token setup in my previous post about Oauth2. I can’t edit my original message (too old probably) so I’m adding it here.

Nb: I’m now using environment variables for my client secret, client id, and base url in order to easily switch these parameters across all calls (especially for version-test/version-live). They can be defined in the “advanced” section.

4 Likes

Thanks Lucien! We ended up doing a Session Auth setup due to the refresh token issue, but we’ll circle back down the road and try this out. You’re such an asset to this community!! Thank you :slight_smile:

@Lucien thank you so much for all the information that you have detail about this topic man.

Super helpful! :pray::pray::pray::pray:

I keep getting at Unable to load choices We’re having trouble loading 'Zap ID' data (The app returned "Unauthorized".) Error any one know why?

Lucien

Really helpful but (being a newbie in way too deep). How do I set up that login page - I gather it needs to be at that api/1.1/oath/authorize endpoint (or could it be any other valid page?).

Anyway - if it has to be there, how do I put a page there?

Also, can that page load a SSO logon so long as the result is a logged on user?

Finally (as I have tested the above and it sort of works) - what do I need to do on that page/workflow to signal that we are done and return to return_redirect link? At the moment the logon page is just staying open. Even though I am logged in.

tx
Andrew

Hi - I am struggling with the logon screen part of this process as well if you have time?

many thanks

OK

Sorted this but for anyone else who gets lost there. Have a look at Lucien’s first post - the bubble config of OAuth has that “Login page for SSO/OAuth redirects” (he calls it zapier)

That is the actual login page but the page referenced further down (…api/1.1/oauth/authorize) then redirects to the configured page (zapier).

Once I did that and fixed all my oath → oauth typos… it worked fine. Note that my signon is using the SSO Multiple Providers plugin so I think that is kind of hoopy. Only issue is that, if zapier goes to authenticate and that browser is already logged in then it does nothing so might be best to advise users to use a private window for setting up their zapier access - until I sort that one.

Sigh… update.

The connection test worked but when I run in live I keep getting “connection not in initialisation mode” errors - any ideas?

Okay that was me not taking the /initialise off the url which is only used when setting up the response frame)

Now I am hitting issues with connections working in developer mode but not in zaps. Zapier investigated and …,.

I have been talking to Zapier and they believe that bubble is sending a 403 when it should be sending a 401 for token refresh… see below…

I took a look and it looks like when the auth needs to refresh, we are receiving a 403 instead of the expected 401 error (log). The OAuth setup in the Visual Builder platform you are building the app refreshes authentication when there is a 401 error.

Are you able to throw a 401 instead of the 403 from your app. Also, you mentioned Bubble workflows, is this something you could use the Bubble app for instead?

Does this make sense (above my pay grade) although given the standard Bubble Zapier connector is doing this properly it seems a bit strange - again, could be me.

tx

Old thread, but hopefully this helps someone…

I had the same issue. The solution came down to a simple typo in Lucien’s tutorial…

Make sure that all references to Access Token are either “/accesstoken” or “access_token”. There’s currently one of each in the example!

This is amazing! Thanks for writing such a detailed overview. Saved me a ton of trial and error

Paying it forward. To create a new trigger, you’ll need to specify the following urls as listed in this documentation, Triggers | Zapier Platform UI Documentation

For a create trigger:
{{process.env.BASE_URL}}/obj/YourDataEntityName?sort_field=Created%20Date&descending=true

For an updated trigger:
{{process.env.BASE_URL}}/obj/YourDataEntityName?sort_field=Modified%20Date&descending=true

STILL WORKING ON
Now, I’m struggling with how to resolve the actual user name instead of the id, inline with the url call above. Open to any ideas.

1 Like

hi,
i want to ask a question to does anyone tried creating an instant (REST Hook) trigger yet ? there is subscribe process needed


so imagine im creating a zap data type and adding it to current user with data api i can create a zap thing but after that i need to add it to current user so is it only posibble to go with a backend wf ?

Hey there
Did you ever figure this out? Just getting onto this part now :slight_smile: