Guide

Messages & branding

Every message the bot sends is a template you can edit with a live Discord-style preview. Paid plans remove the Keepcord branding and put the verify page on your own hostname.

Embed templates

TemplateWhen it is sent
Verify messagePosted in the verify channel with the Verify button. Re-posted by /verify-embed or Messages → Post to channel (the previous one is removed).
DM after verificationSent to the member right after a successful verification, if DM on verify is on.
Kick noticeSent before auto-kicking a member who did not verify in time.
Verification reportPosted in the log channel (fixed layout, colors follow the outcome).

Each editable template supports title, description, color, author (name, icon, link), thumbnail, large image, footer (text and icon), timestamp and up to 25 fields with inline layout. The editor is split into Author, Content, Images, Footer and Fields sections and the preview is rendered by the API with the same code the bot uses.

Template format (as stored and as accepted by the API)
{
  "title": "Welcome to {guild}",
  "description": "Press **Verify** to unlock the server. {members} members are already in.",
  "color": "#6d5dfc",
  "author": { "name": "{guild}", "iconUrl": "https://cdn.keepcord.app/uploads/.../logo.png" },
  "thumbnailUrl": null,
  "imageUrl": "https://cdn.keepcord.app/uploads/.../banner.png",
  "footer": { "text": "Verification takes 10 seconds", "iconUrl": null },
  "timestamp": false,
  "fields": [
    { "name": "Rules", "value": "Be kind.", "inline": true },
    { "name": "Support", "value": "#help", "inline": true }
  ],
  "buttonLabel": "Verify"
}

Placeholders

PlaceholderValue
{guild}Server name
{members}Current member count
{user}Member display name (DM and kick notice)
{verifyUrl}Link to the verification page (custom domain when active)
{role}Verified role mention

Placeholders work in every text field, including author name, footer text and field values. Discord markdown (bold, links, code) is supported.

Images & CDN

Any image field accepts a URL or an upload. Uploads go to the Keepcord storage and are served from a permanent, cache-friendly URL, so logos and banners do not disappear when a Discord attachment link expires. PNG, JPEG, GIF and WebP up to 8 MB are accepted; the quota is per plan (50 MB, 500 MB, 2 GB) and the Branding page shows usage.

Branding

On Free, embeds and the verify page carry a small "Protected by Keepcord" line. Premium and Plus can switch it off under Branding → Hide Keepcord branding. The bot itself is always yours: name, avatar and status come from your Discord application.

Custom domains

Serve the verification page from verify.yourserver.gg instead of keepcord.app/verify/…. Available on Premium and Plus.

Two records are needed: a CNAME that routes visitors to Keepcord and a TXT record on _keepcord.<hostname> that proves you own the hostname. The dashboard shows both with copy buttons.

  1. 1

    One click: connect your DNS provider

    Branding → Custom domain, type the hostname and press Connect my DNS provider. Keepcord looks up your provider through Domain Connect (GoDaddy, IONOS and many others), sends you there to log in and approve, and the CNAME and TXT records are applied for you. You land back in the dashboard and the check runs on its own. Subdomains only. On Cloudflare use the token setup on the same page instead.
  2. 2

    Or add the records by hand

    If your provider does not support Domain Connect, create the CNAME pointing at keepcord.app and the TXT record shown in the dashboard. Subdomains only; apex domains need a CNAME-flattening provider such as Cloudflare. With Cloudflare keep the proxy on and set SSL/TLS to Full.
  3. 3

    Check now

    Keepcord looks for the TXT ownership record and the CNAME (or an A record pointing at Keepcord). Both are required; status becomes Active once they resolve.

Once active, the Verify button, {verifyUrl} and the result page use the custom host. Requests for any other path on that host are rewritten to the verify page, so the hostname cannot be used to reach the dashboard.

Certificates

Behind the Cloudflare proxy the origin only needs its own certificate. Without a proxy, contact support so a certificate for your hostname is issued on the Keepcord edge.

Cloudflare one-click

Expand "Set it up automatically with Cloudflare" and use Create a token with the right permissions: it opens Cloudflare with the DNS edit permission pre-filled, you only click Create and copy the token. Paste it and Keepcord creates the proxied CNAME and the TXT ownership record in your zone and sets the SSL mode. The token is used for that request only and is never stored.

What the one-click does
GET  /client/v4/zones?name=yourserver.gg                  → zone id
POST /client/v4/zones/{zone}/dns_records                 { type: "CNAME", name: "verify", content: "keepcord.app", proxied: true }
POST /client/v4/zones/{zone}/dns_records                 { type: "TXT", name: "_keepcord.verify", content: "keepcord-verify=<token>" }
PATCH /client/v4/zones/{zone}/settings/ssl               { value: "full" }
  • The token needs the Zone.DNS:Edit permission (and Zone.Zone Settings:Edit for the SSL mode, optional).
  • If the record already exists it is updated, not duplicated.
  • Check now runs automatically a few seconds later; DNS propagation can take a minute.