How to connect Discord to your Shopify memberships


Connect your Discord server to Zendra so active members get the right roles automatically — and lose them when they leave. Here’s the full setup, including the one mistake to avoid.

Beka Rice Avatar

Author

Published

Display

Granting a few Discord roles by hand feels manageable right up until it isn’t. Members join, cancel, upgrade, and lapse on their own schedule, and within a month your role list has drifted away from who’s actually paying — a handful of churned members still sitting in the private channels, a new subscriber waiting on access.

Zendra’s Discord integration keeps that in sync for you: active members get the roles you configure, and they lose them when the membership ends. This guide covers the full setup, including the one configuration mistake that trips most people up.

Set it up once, and access manages itself.

The Zendra Discord integration

When a member is active on a plan with Discord access, Zendra assigns the roles you’ve chosen — which can unlock private channels, permissions, or anything else you tie to a role in your server.

When the membership ends, those roles come off, optionally after a grace period. From there, renewals, upgrades, and cancellations all keep roles in sync without any manual work.

Step 1 — Connect your server

In Zendra, go to Settings > Integrations, find Discord, and click Connect Discord server. You’ll be redirected to Discord to authorize the Zendra bot — select the server you want to connect and approve it.

The bot asks for a few permissions so it can manage roles on your behalf: Manage Roles, Kick Members, Create Instant Invite, and View Channels. These are requested automatically during authorization. Once connected, the Integrations page shows your server’s name and icon, confirming it’s live.

Zendra Discord integration: role mapping

Step 2 — Add Discord access to a plan

With the server connected, open the plan you want to gate (under Plans), find the Integrations section, and add a Discord access perk. Pick one or more roles from the picker — these are pulled straight from your server, and you can create a new role here if you need one. Give the perk a label, since that’s what members see in their portal (“Discord access,” “Join our community,” whatever fits), and save the plan.

Zendra Discord perk set up for a plan

Each plan can have one Discord access perk, but that perk can assign several roles. If you run tiers, each tier can grant different roles with different channel access — for example, Silver into the general lounge, Platinum into everything.

Step 3 — Decide what happens when a membership ends

On the Discord settings, you control what happens during the membership lifecycle:

  • Remove role when membership ends: on by default. When a membership ends or pauses, the assigned roles are removed.
  • Removal delay: optionally wait a set number of days before removing roles. This gives lapsed members a grace period to resubscribe; if they do, the removal is skipped automatically.
  • Remove from server: off by default. When on, members are removed from the server entirely once they have no active memberships with Discord perks. Off lets them stay in public or free channels once they’re no longer a member.
  • Grant role during trial: on by default, so members on a free trial get access right away rather than waiting for their first payment.

Setup tip: bot role hierarchy

There’s one step that can be easy to miss, due to the way Discord manages bots and integrations.

For Zendra to manage a role, the Zendra Memberships bot role must sit above that role in your server’s role list. Open Server Settings > Roles in Discord and drag the Zendra Memberships role above any role you’ve assigned to a plan.

Discord role manager: Zendra bot permissions

If the bot role sits below a managed role, Discord blocks the bot’s ability to manage the role, so Zendra will flag a warning on the perk settings.

The same goes for missing permissions — if the bot is short a permission like Manage Roles, Zendra surfaces the warning and points you to reconnect.

The member experience

Once a plan has the perk, members get a Discord section in their member portal. Before they’ve connected, it shows your server’s name, icon, description, and member count, along with a Log in with Discord button.

Zendra Discord Integration: New member connection

Clicking it opens a Discord authorization popup; the member logs in (or creates an account), approves the connection, and they’re added to your server with the right roles immediately.

Note that during that first connection, members see Zendra’s name rather than your store’s. That’s how the Discord API adds integrations: our connector is what adds members and manages roles, so its name shows on the join step.

Zendra Discord connection flow

After connecting, the portal shows a Connected badge and an Open Discord button, and the server card displays your server’s banner, icon, and description.

A fully automated sync

After the initial connection, members (and you!) don’t have to do anything. Zendra keeps roles current in the background: a new membership grants the roles; a renewal keeps them; a cancellation, pause, or expiry removes them per your settings; and an upgrade or downgrade swaps roles to match the new plan.

If a member disconnects their Discord account on their end, the connect button simply reappears in their portal so they can reconnect.

Start using Discord with Shopify memberhsips

If you’ve already mapped out your community (here’s how we’d structure one), connecting Discord is the part that makes it run itself. Make sure you’re on the Growth plan, connect your server, and add the access perk to a plan — then access manages itself.

For the reference version of every setting, see our Discord integration docs, or add Zendra to your store to get started.


Get this content in your inbox

We share case studies, optimization strategies, & merchant interviews. Join our community of entrepreneurs leveling up their businesses.

This field is for validation purposes and should be left unchanged.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *