Hello Zapier team.
In my app I have two types of user account: starter and pro. Only pro accounts may use Zaps of my integration.
What is the correct way to restrict starter user account to use Zaps? Would it be possible to mark it as RESTRICTED (instead of EXPIRED) when choosing account?
Currently I am checking type of user in test function (authentication.js file), and if it is not pro account I throw an error which resolves in immediate account expiration (see attachment).
Best answer by ZaneView original
For a great user experience, and to increase the likelihood that your user upgrades, you’ll want to make it clear from the outset what’s required and provide a clear call to action.
We want to stop the user before they ever get to the point they’ve created a connected account that’s not going to work.
The options available to you depend on what Auth method you’re using. Here are a couple of examples of successful Zapier integrations that require paid accounts, and how they handled it.
Calendly uses API Key authentication. They provide a pretty clear message here that a) tells the user they have to have a paid account to set up an integration; and b) has a clear call to action for where to go to upgrade. This approach prevents the user from getting as far as creating a authenticated but unauthorized connected account. No paid account, no API token to enter.
Any.do uses OAuth. This allows you to control the authentication and authorization experience within your own app, by using scopes. They did a nice job. If you auth, and don’t have a paid account that supports Zapier, they provide you with upgrade options right there. One of the many ways that OAuth is a great option for Zapier integration.
I’d encourage you to consider a similar approach. Otherwise you’re not going to get the conversion you’re hoping for and it’s highly likely that the confusing user experience will create support issues.