Services Plugins FAQs

Enabling separate access via Xero plugin for each user

Hi, I’m looking at getting started with the Xero plugin, and the first thing it says is to create a developer account and get API keys, which I can do. The question is whether each of my users would need to do this too? They will all be connecting to their own Xero company, which I don’t have access to. None of them are remotely technical, so I really just want them to be able to connect via their usual login and not to have to do any other setup.

Many thanks
Debbie

Hey @debbie ,
Thank you for contacting us.

Unfortunately, due to limitations on Bubble’s side, it’s not possible to support multiple Xero aссоunts connecting independently through the same app setup. This means that your end users can’t each connect their own Xero organization without some more advanced technical configuration.

Right now, the integration is best suited for a single Xero account setup — where the app is authorized to connect to one Xero organization using a single set of developer credentials. Supporting multiple users with their own separate Xero logins isn’t natively possible in this context.

Have a nice day!

Best Regards,
Anton

Browse all Zeroqode Plugins for Bubble
Banner_Last3

Hi @AntonZ , Can I just follow up with a similar question?

I am building an app for a client with circa 30 users. I want 1 user to log in with their credentials that allows all users to generate invoices in xero. Is that possible with this plugin?

I also want to allow pulling all bank transactions through at midnight using a back end workflow - assume the plugin allows backend workflows for this using those same credentials?

And finally, for a multi tenant xero account (ie, they have two tenants for two different markets), is it possible to read and write to both from one connection?

Thanks,
Phil.

Hey @phil1 ,
Thank you for contacting us.

  • Single user login allowing all 30 users to generate invoices:
    Yes, this is possible. The approach would be to have one admin user authenticate via OAuth 2.0, then store the resulting access_token and refresh_token in your Bubble database. All 30 users can then use these shared tokens when triggering the “Create Invoice” API сall, and they won’t need to authenticate themselves. The key is using the “Xero: Refresh Token” action to keep the access token alive (it expires every 30 minutes). This will refresh the token automatiсally before each operation and save the new token back to the database.
  • Backend workflow pulling bank transactions at midnight:
    Yes, this is fully supported. The “Get Bank Transactions” сall is a standard data API сall with no client-side dependency, so it works fine in Bubble backend workflows. You should use the same shared token approach as in question 1, ensure that your midnight workflow first refreshes the token, then сalls “Get Bank Transactions” with the fresh access token and the correct Xero-tenant-id header. The plugin has no restrictions preventing server-side scheduled use.
  • Reading and writing to both tenants from one connection:
    Yes, this is possible and works well with the plugin. When a user authenticates, the “Get Tenants Id” action returns a list of all tenants the authenticated account has access to, including both tenantId and tenantName for each. Every API сall in the plugin accepts the Xero-tenant-id header as a dynamic parameter, so you can store both tenant IDs after the initial authentication and pass the relevant tenant ID at the time of each read/write operation. No need for a second login or separate connection.

Best Regards,
Anton

Browse all Zeroqode Plugins for Bubble
Banner_Last3

Great, thank you for your response!

1 Like

Hi again,

Glad to be helpful. Please feel free to reach us again when you need some help or assistance. It will be a pleasure to cooperate.

By the way, if you like our plugin you can rate it by going to the Plugins tab in Bubble editor. Find the plugin by name and give it as many stars as it deserves. We would appreciate it a lot!
Additionally, if you’re open to sharing your complete experience with Zeroqode, please feel free to do so here: https://zeroqode.com/review

Best Regards,
Anton

Browse all Zeroqode Plugins for Bubble
Banner_Last3

Hi @AntonZ , I am looking at migrating to this plugin (from another solution), but all my data and Auth are managed via Supabase (using your Supabase Pro plugin).

With your setup documentation for Xero, it uses the Bubble “User” table, assuming for privacy controls. Will this work using a Supabase table and RLS it to the auth? Or is it specifically only for Bubble Users? Do you have any documentation for the Supabase setup?

Thanks.

Hi @phil1,

Thank you for your question.

The Bubble User table shown in the Xero plugin setup documentation is mainly used as the default/simple Bubble storage example for the OAuth token values. The Xero plugin itself is not strictly limited to Bubble’s User data type, as the main Xero actions return token values such as Access Token, Refresh Token, ID Token, and expiry data, and the API calls accept the Authorization value and Xero-tenant-id dynamically.

So, in theory, you can store those Xero token values in a Supabase table instead, then retrieve them when running the Xero workflows.

At a high level, the logic would be:

  • Connect to Xero and receive the OAuth token values.
  • Save those token values in Supabase.
  • Retrieve the relevant token values when a Xero workflow needs to run.
  • Refresh and update the tokens when required.

That said, this type of setup would be considered a custom implementation. While it should be technically possible in theory, in practice you may run into unexpected behavior, edge cases, or interactions between the Xero plugin, Supabase plugin, Bubble workflows, privacy/RLS rules, backend workflows, and token refresh logic.

For this reason, please note that our support team can provide only general guidance on the plugin behavior and available actions. We would not be able to design, build, debug, or guarantee a complete custom architecture/workflow implementation for your specific app. The actual workflow logic, database structure, RLS configuration, token handling, and testing would need to be handled by the app owner/developer.

At the moment, we do not have dedicated documentation for a Xero + Supabase setup. The available documentation should be treated as separate references for each plugin, and any combined implementation would need to be tested on your side.

Our recommendation would be to first subscribe to both plugins and test this use case in a dedicated, isolated development environment. Please confirm there that the OAuth flow, Supabase storage, token retrieval, refresh logic, and Xero API calls work exactly as expected before making any larger purchase decisions.

Only once you have checked that the setup can be implemented successfully for your use case would we recommend purchasing lifetime licenses or pushing this type of update to production.

Best Regards,
Egor Smorodinov,
Zeroqode Support Team
Browse all Zeroqode Plugins for Bubble
Banner_Last3