Community Features
Reaction roles, sticky messages, ghost pings, welcome & goodbye messages, and per-server branding. Looking for tickets?
A full support platform — departments, conditional forms, SLA timers, staff routing, automation, satisfaction ratings and searchable transcripts.
Tickets have their own documentation page.
Departments & forms
Separate teams with their own staff, response targets and conditional intake forms.
SLAs & automation
Response targets that pause while you wait on the member, plus trigger-condition-action workflows.
Analytics & transcripts
Response times, satisfaction, workload and heatmaps — with searchable, exportable transcripts.
Let members self-assign roles using emoji reactions, clickable buttons, or dropdown select menus.
Panel Types
Reaction Panel
Classic emoji-reaction style. Members react to the message to get/remove a role. The bot lists available roles and their emojis in the embed, then adds its own reactions as prompts. Requires the bot to have Add Reactions permission in the channel.
Button Panel
Discord component buttons — each role becomes a labeled button with an optional emoji. Clicking a button toggles the role on or off. Supports up to 25 roles per panel (5 buttons per row).
Dropdown Panel
A Discord select menu. Members pick one or more roles from a dropdown list. Their selection replaces whatever roles from that panel they previously held. Supports up to 25 options, each with an optional description.
Setup Flow (Dashboard)
-
1Open the panel builder
Go to Dashboard → Reaction Roles → + New Panel. Give the panel a title and optional description.
-
2Choose a panel type
Select Reaction, Button, or Dropdown. The type determines how members interact with the panel.
-
3Add role entries
Click + Add Role for each role. Each entry has an emoji picker, a label (shown on buttons/dropdowns), and a role selector. The emoji defaults to 😊 — click it to pick a different one.
Reaction panels use the emoji as the reaction trigger. Button and dropdown panels display the emoji next to the label.
-
4Choose a channel and post
Select the channel where the panel should appear, then click Create Panel. The bot posts the message immediately.
Editing a Panel
Open Dashboard → Reaction Roles, expand the panel, make your changes, and click Save. Saving a panel deletes the old message and reposts a fresh one in the same channel — the panel's position in the channel will move to the bottom. If you need it pinned, re-pin it after saving.
How Each Type Works for Members
| Type | How to get a role | How to remove a role |
|---|---|---|
| Reaction | React with the emoji shown next to the role | Remove your reaction |
| Button | Click the role's button (toggles on) | Click the same button again (toggles off) |
| Dropdown | Open the dropdown, tick the roles you want, submit | Open the dropdown, untick the role, submit — selection replaces previous |
Commands
A message that automatically re-posts to the bottom of a channel whenever new messages push it up — perfect for rules, FAQs, or pinned announcements.
How It Works
When a member sends a message in a channel that has a sticky, the bot waits 1.5 seconds (debounce) and then:
- Deletes the previous copy of the sticky from that channel
- Re-posts it as a fresh message at the very bottom
- Saves the new message ID so the next cycle knows which copy to replace
The 1.5-second debounce means rapid messages collapse into a single repost — the bot won't flood the channel if several messages arrive in quick succession.
@everyone in one would otherwise notify the server over and over.
Setting Up from the Dashboard
-
1Open Sticky Messages
Go to Dashboard → Sticky Messages. The page shows all active stickies for your server as cards, each with a yellow left-accent border.
-
2Click "Add Sticky"
Click the Add Sticky button in the top-right of the page header. A modal opens with a channel selector and a message content textarea.
-
3Fill in the modal
Select the channel, type your message (Markdown is supported), then click Save Sticky. The character counter in the top-right of the textarea turns red when you approach the 2000-character limit. The bot immediately posts the sticky in that channel.
-
4Edit or remove
Each sticky card has an Edit button (opens the modal pre-filled with the current content, channel locked) and a trash icon that opens a confirmation modal before deleting. Confirming removal deletes the embed from Discord and removes the sticky from the database.
Behaviour Reference
| Scenario | What happens |
|---|---|
| New message in channel | Bot waits 1.5 s, deletes old embed, reposts sticky at bottom |
| Several rapid messages | Timer resets on each message — only one repost fires after the burst |
Sticky updated via dashboard or /sticky set | Old embed deleted, new embed posted immediately; next repost cycle uses fresh content |
Sticky deleted via dashboard or /sticky remove | Embed removed from Discord, no further reposts in that channel |
| Bot message in channel | Ignored — bot's own messages do not trigger the repost timer |
Commands
/sticky commands are best used when you're already in the channel.
Silently ping every new member in a channel with a short message, then delete the ping about a second later — they keep the notification, the channel stays clean. Set up as many as you like across different channels.
How It Works
When a member joins, the bot — for each configured channel — mentions the new member with your message, then deletes that message after ~1 second. The member still gets the ping notification, but no permanent message is left behind.
Setting Up from the Dashboard
-
1Open Ghost Ping
Go to Dashboard → Ghost Ping (under Engagement, just below Sticky Messages). It lists every ghost ping as a card.
-
2Click "Add Ghost Ping"
Pick a channel, type a short message, and choose whether it's enabled. Save, and new members will be pinged there.
The picker lists every channel Azra can post in, grouped by kind — text and announcement channels, the text chat inside voice and stage channels, and threads (public and private). Only active threads appear: an archived thread can't be posted in until someone reopens it.
-
3Edit or remove
Each card has Edit (message + enabled toggle; channel locked) and a delete button with a confirmation step.
Commands
These also work as prefix commands — e.g. !ghostping add #welcome Welcome aboard! (alias !gp); omit the channel to target the current one.
Greet new members with a rich embed, a custom-designed image, or plain text — and mark departures the same way. Plus auto-roles, welcome DMs, and link buttons.
Two Messages, One Page
Welcome (posted when someone joins) and Goodbye (posted when someone leaves) are configured independently — their own channel, their own on/off switch, their own style and their own text. The Welcome / Goodbye switch at the top of Dashboard → Welcome picks which one you are editing; both are saved together, so flipping between them never loses work.
Message Styles
Each message is built in exactly one of three styles — they can't be combined. Welcome and Goodbye can each use a different one.
Embed
The bordered card Discord renders from text you fill in: author line, title, description, up to 10 fields, thumbnail, banner image, footer and timestamp — in your accent colour.
Image
A picture Azra draws for every member in the layered designer — their avatar, name, your server icon, the member count. Arrange it yourself; what you see is what Discord gets.
Text
A plain chat message with Discord markdown. Lowest overhead, and the only style that needs no extra bot permissions beyond Send Messages.
Placeholders
Anywhere you type text — embed title, description, fields, footer, plain text, the welcome DM, the auto-nickname, a text layer on the image — these are swapped for the real member's details when the message is sent.
| Placeholder | Becomes |
|---|---|
{user} | A real @mention that pings the member. On an image layer it is drawn as their display name — a picture cannot mention anyone — so reach for {username} or {displayName} there and say which name you mean. |
{username} | Their unique Discord handle (e.g. jane_doe) — never localised, never per-server. |
{displayName} | What Discord actually shows in chat: their nickname in this server if they have one, otherwise their account display name, otherwise their handle. This is the one to use in a greeting. |
{server} | Your server's name. |
{rules} | A clickable #channel link to your rules channel — pick it under Rules channel on the Welcome page. Azra stores the channel itself, not its name, so renaming it never breaks your message. With no channel picked the word is simply left out. |
{memberCount} | The member count, formatted (e.g. 4,218). |
{count} | The same number as an ordinal (e.g. 4,218th). |
{joinDate} | The date they joined (e.g. Jul 14, 2026). |
Image text layers support {username}, {displayName}, {server}, {memberCount} and {joinDate} — the chips under the TEXT box insert them for you. {rules} is not among them: a picture cannot hold a clickable link, so put it in the message, embed or DM instead. {user} still works on a layer saved earlier (it draws the display name), but it is no longer offered as a chip — it was indistinguishable from {displayName} on a picture.
The Image Designer
Choosing the Image style opens a layer editor, the same idea as Photoshop: a 600×300 canvas holding up to 40 layers stacked back to front. The bottom layer is the background (it can't be deleted), and everything else is a text or picture layer you place yourself. The bot re-draws the design for each member with their own avatar and name.
-
1Set a background
Upload a picture or paste an
httpslink into Background image. Leave it empty for no background at all — the card is drawn transparent behind your layers, so it blends into Discord. Uploaded pictures are re-hosted on Discord's CDN so the link never expires; pasted links must come fromcdn.discordapp.com,media.discordapp.net,i.imgur.com,files.catbox.moeori.ibb.co. -
2Drop in the content
The Content presets add the pieces worth putting on a card in one click: profile picture, server icon, username, display name, server name, member count and join date. A ticked preset is already on the canvas. Use + Text / + Image for anything else.
-
3Arrange it
Click a layer to select it, drag to move, pull a white handle to resize, use the dot above it to rotate, and double-click a text layer to type straight on the canvas. The layers list on the left reorders, duplicates and deletes; Align to canvas snaps a layer flush to an edge or the centre.
-
4Style it
The properties panel styles whichever layer is selected — see the table below. Every change repaints the live preview on the right instantly.
-
5Test render
Click Test render above the preview. Azra draws the card with the bot's own renderer on the server and shows you the exact PNG Discord will receive — the way to confirm your fonts and pictures resolve on our host, not just in your browser. Edit anything to go back to the live canvas.
| Layer option | What it does |
|---|---|
| X / Y | Position of the layer's centre in pixels (300, 150 is dead centre of the card) |
| Width / Height | The layer's box. For text it's the box the text is laid out and aligned in |
| Rotation / Opacity | Tilt around the centre; how see-through the layer is (dim a background so text stays readable) |
| Font | Sans, Display, Serif, Mono or Impact. Azra resolves the closest family it has installed when it draws the real image — Test render shows the truth |
| Size / Weight / Align / Line height | Standard type controls. Align positions the text inside its own box |
| Colour or Gradient fill | A flat colour, or a two-colour fade at any angle (the gradient replaces the flat colour while it's on) |
| Stroke (outline) | A border around every letter — the reliable way to keep text readable over a busy background |
| Shadow | A drop shadow with blur, colour and an offset you can drag on a small pad |
| Glow | A coloured halo radiating evenly around the layer (text or picture) |
| Image source | Member avatar and Server icon are filled in live per member; Image URL is a fixed picture you upload or link |
| Fit | cover fills the box and crops, contain shows the whole picture, fill stretches it |
| Circle % | 0 = square, 50 = a perfect circle. This is how you get a round profile picture |
Extra Actions (Welcome only)
| Action | What it does |
|---|---|
| Welcome DM | Also greets the member privately. Turn on Mirror the welcome message to send the exact same message you post in the channel — embed, image or text, with the same buttons — or leave it off to write a separate DM as plain text or an embed. Members can block DMs from servers, so a DM may silently fail — never put anything essential only in the DM. The DM's own link buttons are Pro; the DM itself is free. Azra always adds a greyed-out button naming your server, on every plan, so the member can tell which server the DM is from. |
| Auto-roles | Roles handed out the moment a member joins. Azra can only assign roles below its own highest role, and never bot/integration-managed roles — the picker flags any role it can't grant. Needs Manage Roles. Free on every plan. |
| Auto-nickname (Pro) | Renames new members to a pattern like {username} | Guest. Needs Manage Nicknames. Discord never lets a bot rename the server owner, so the owner keeps their name. Requires an active plan — without one the pattern stays saved but nobody is renamed. |
| Separate bot welcome | Joining bots get their own short announcement in a channel you choose (usually staff-only) instead of the normal welcome message. |
| Message buttons | Link buttons under the welcome message — your rules channel, a guide, your website. Discord only allows link buttons here, so every URL must start with https://. One on the Free tier, up to 5 on Pro; extras you set up on Pro are kept and simply not shown until you renew. |
Permissions Azra Needs
| Permission | Needed for |
|---|---|
| View Channel + Send Messages | Posting any welcome or goodbye message at all |
| Embed Links | The Embed style |
| Attach Files | The Image style (the card is uploaded as a PNG) |
| Manage Roles | Auto-roles — and Azra's own role must sit above every role it hands out |
| Manage Nicknames | Auto-nickname (never applies to the server owner) |
Commands
Make the bot look like it belongs to your server — set a per-server nickname, brand name, logo, accent colour, and footer that appear on everything it posts.
Options
| Option | Where it shows up |
|---|---|
| Bot nickname | The bot's display name in your server (this server only). Needs the bot's Change Nickname permission; applied to Discord instantly. |
| Brand name | The sender name on webhook posts (mod-log, etc.) and the author line on branded embeds. |
| Logo | A direct https image URL used as the webhook avatar and embed author icon. |
| Accent colour | The colour bar on embeds the bot posts. Picked as a hex value (e.g. #5865F2). |
| Footer text & icon | Optional small text and icon at the bottom of branded embeds. |
Setup Flow (Dashboard)
-
1Open Branding
Go to Dashboard → Branding. The page has a live Discord-style preview that updates as you type.
-
2Set the nickname (optional)
Type a nickname and click Save Nickname. This is saved separately and changes the bot's name in Discord immediately — it requires the bot to hold the Change Nickname permission.
-
3Add your brand name, logo, colour and footer
Fill in the brand name, paste an
httpslogo image URL, pick an accent colour, and optionally add footer text/icon. Tip: upload your logo to any Discord channel and copy its image link to get a stable URL. -
4Save
Click Save Branding. Changes apply to the bot within a few seconds (falling back to a 5-minute refresh if the bot is briefly unreachable).