Captcha verification
Cloudflare Turnstile for every new member.
Captcha rules post a Verify button in the channel you pick, send the member to a hosted Turnstile page, and run the role, permission, or message actions you set when verification clears.
How a captcha rule works
A captcha rule connects a dashboard-configured verification prompt to a hosted page. Flake posts the prompt with a Verify button, validates the Turnstile token after a member completes it, and runs the success actions for that rule.
- Hosted Verification Page
- Members click a Verify button and complete Cloudflare Turnstile captcha on a Flake-hosted page
- Custom Verification Message
- Configure the channel, message copy, and button prompt from the dashboard
- Persistent or Per-User Prompts
- Use one persistent verification post or send a separate request when each member joins
- Join, Verify, Timeout Stages
- Run different actions before verification, after success, or when a request expires
- Role and Permission Control
- Limit access before verification, then grant the right Discord roles or Telegram permissions after success
- Automatic Cleanup
- Optionally remove verification request messages after successful verification
Five steps from new rule to live
Each step lines up with a section of the captcha rule editor in the dashboard. Keep the rule disabled until the message and flow actions are ready.
- 01
Create a Captcha Rule
Start from the Captcha section of your server dashboard
- 01Open the server dashboard and select Captcha
- 02Create a new captcha rule
- 03Give the rule a clear name so moderators know what it controls
- 04Keep the rule disabled until the message and flow actions are ready
- 02
Configure the Verification Message
Choose where Flake posts the prompt and what it says
- 01Write the custom message that explains why members need to verify
- 02Select the verification channel where the prompt should be posted
- 03Use template variables when the message should mention the member or server
- 04Decide whether the prompt is persistent or sent separately for each joining member
- 03
Choose Prompt Behavior
Decide whether members share a prompt or receive their own
- 01Persistent messages create one long-lived verification prompt with a Verify button
- 02Per-user messages are sent when a member joins
- 03For per-user messages, set a cleanup delay if the request should be removed after verification
- 04Leave cleanup delay empty when the request should stay visible
- 04
Add Flow Actions
Configure what happens on join, on verify, and on timeout
- 01Use On Join to restrict access or send setup instructions before verification
- 02Use On Verified to restore access, assign roles, or post a welcome message
- 03Use On Timeout to kick inactive members or keep restrictions in place
- 04Set a timeout duration when unverified members should expire automatically
- 05
Save and Enable
Review the rule, save it, and turn it on
- 01Confirm the bot can post in the verification channel
- 02Confirm the bot can manage the roles or permissions used by your actions
- 03Save the captcha rule
- 04Enable Captcha Verification when the flow is ready for new members
ready to configure
Open the dashboard and create a captcha rule.
The rule editor is under Captcha in your server settings. Keep the rule disabled while you draft, then enable it once the actions and channel are set up.
Three stages, run in order
Each stage runs against the member individually. Configure actions for the stages you actually need; the others stay empty.
- 01On Join
Before Verification
Runs as soon as a member joins and a verification request is created.
Use this stage to prepare the member and limit access.
- +Post verification instructions
- +Assign a waiting-room role
- +Limit Telegram permissions
- 02On Verified
After Turnstile Passes
Runs after the member logs in, completes Turnstile, and Flake validates the token.
Use this stage to restore normal access.
- +Grant the member role
- +Revoke a restricted role
- +Send a welcome or next-step message
- 03On Timeout
When Verification Expires
Runs when the timeout duration passes before the member completes verification.
Use this stage to avoid leaving members in an undefined state.
- +Kick inactive members
- +Post a final notice
- +Keep restricted permissions active
Available actions
Action availability shifts by platform and stage. Discord rules lean on roles; Telegram rules lean on permissions. Both can post messages.
- Post Message
Send a templated message during a verification flow stage.
Post "Thanks for verifying" in the verification channel
- Grant Role
Assign Discord roles when a member reaches a stage.
Grant the Member role after successful verification
- Revoke Role
Remove Discord roles that were used as temporary limits.
Remove the Unverified role after success
- Grant Permissions
Restore Telegram permissions for verified users.
Allow sending messages after verification
- Revoke Permissions
Temporarily limit Telegram permissions before verification.
Prevent posting until Turnstile is completed
- Kick or Ban
Remove members who should not remain in the server after timeout or failure handling.
Kick a member when verification times out
Common configurations
The same three flow stages compose into very different gates depending on the platform and the kind of member you’re filtering.
- case · 01
Discord Waiting Room
Place new Discord members in a restricted role until they verify.
- 01Post the verification prompt in a welcome or verify channel
- 02On Join, grant an Unverified role
- 03On Verified, revoke Unverified and grant Member
- 04On Timeout, kick the member or leave the restriction in place
outcomeNew members can see the verification instructions but cannot access the full server until they pass Turnstile.
- case · 02
Telegram Permission Gate
Restrict a new Telegram member until they complete the hosted captcha verification.
- 01Send a per-user verification message on join
- 02On Join, revoke message permissions
- 03On Verified, grant message permissions back
- 04On Timeout, keep permissions limited or kick the user
outcomeSpam accounts cannot post freely while legitimate members can regain access after verification.
- case · 03
Persistent Verify Channel
Use one long-lived message so members always know where to verify.
- 01Enable Persistent Message in the verification message card
- 02Write a short prompt that explains the Verify button
- 03Use On Verified actions to grant normal access
- 04Use a timeout when old verification requests should expire
outcomeModerators maintain a clean verification channel without reposting instructions for every member.
Common issues
still stuck
Talk to the people who wrote the code.
Support is run by the same team that ships the product. Both rooms below are watched during working hours, and answers do not go through a tier-one queue.