Discord

Discord Embeds for Google Forms: Safe Rich Cards

Design schema-validated Discord embeds with stable Google Forms fields, fixed-origin links, disabled mentions, synthetic tests, and a Basic fallback.

Published · Updated · 12 min read

Map fields into a validated Discord embed

Advanced mode accepts a supported Discord embed structure and validates it before saving. Discord embed object is the provider authority for titles, descriptions, fields, URLs, and limits. FormBeacon substitutes variables only in supported string positions and supplies allowed_mentions.parse: []; values cannot introduce keys or mention policy.

{
  "content": "New hiring application",
  "embeds": [{
    "title": "{{field:170042000}}",
    "description": "Submitted {{response.submittedAt}}",
    "url": "https://review.example/applications/{{response.id}}",
    "fields": [
      {"name":"Role","value":"{{field:170042001}}","inline":true},
      {"name":"Skills","value":"{{field:170042003}}","inline":false}
    ]
  }],
  "allowed_mentions": {"parse": []}
}

This synthetic example uses reserved field IDs and an example-domain review link. Duplicate or renamed Google question titles do not change the binding because the variable refers to the item's stable ID. Missing answers render as an empty value; multi-select answers render as readable text without becoming JSON arrays or structure.

Keep the card useful without turning it into a second application record. A reviewer should be able to identify the role, submission time, and a small set of job-relevant facts, then follow the authorized review link for the complete Google Forms record. Do not place personal contact details, attachments, protected information, or unbounded applicant prose into a broad Discord channel simply because the embed has room. Review channel membership and the saved field set together whenever the hiring form changes.

FormBeacon Discord embed editor with a fixed-origin review URL and synthetic preview
The validated embed preview uses fictional hiring data and keeps the review link on the fixed review.example origin.Open full-size screenshot ↗
Received Discord embed with reserved synthetic hiring application data
The private Discord sandbox visibly received the synthetic hiring embed from BeaconBot. Only fictional candidate and technology values are shown; server, channel, account, identifier, and credential details are excluded.Open full-size screenshot ↗

Design a Discord alert that survives real answers

A useful notification must survive the values real respondents enter, not merely look polished with sample text. Build a supported Discord embed that stays valid for malicious punctuation, missing values, duplicate labels, multi-select answers, and fixed-origin links.

Discord embed object is the provider authority for title, description, field, URL, and length constraints.

FormBeacon validates the supported embed structure, substitutes variables only in strings, and supplies restrictive mention behavior.

Choose the format before writing the template

QuestionRecommended starting pointTrade-off
Embed or Rich text?Embed only when fields improve scanningRich text is simpler to maintain
How many fields?Only action-critical fieldsProvider limits and phone height still apply
Color from an answer?NoValues cannot control object structure or presentation policy
Mention policy?NonePublic form content must not ping members

Build the Discord message from the simplest reliable format

For Discord embed formatting, basic is the safest default. Standard and Business add Rich mode and schema-validated Advanced embeds. FormBeacon keeps respondent values as text and suppresses mentions by default.

The first message for Discord embed formatting should identify the form, state when the response was submitted, include only the information the first reader needs, and supply a stable response reference when useful. Put the action before decorative context. On a phone, the first few lines should explain why the alert matters without requiring the reader to expand a card or decode internal abbreviations.

FormatBest useMain risk
BasicFirst setup, arbitrary respondent answers, incident fallbackLong forms can still create noisy messages
RichSupported emphasis, lists, quotes, code, and links on Standard or BusinessEach provider supports a different safe subset
AdvancedSchema-validated Slack Block Kit, Discord embeds, or Telegram optionsOnly supported fields and variable positions are accepted

Advanced mode in Discord embed formatting is provider-specific and schema validated. Variable substitution is context-aware and JSON safe, and respondent values remain text: they cannot become keys, object structure, credentials, destinations, template identity, or routing. Basic mode remains the most resilient choice when a workflow does not need provider-specific structure.

Keep a Basic baseline

Save and verify a simple message before selecting Advanced Embed.

Start with one embed

Use a static title and short description, validate, then add fields deliberately.

Insert stable fields

Use the picker so duplicated or renamed labels do not change which answer is rendered.

Map missing values

Choose clear static labels and confirm optional unanswered fields remain empty without shifting positions.

Render multi-select as text

Treat checkbox choices as a readable string in the selected field, not structural JSON.

Add a fixed-origin URL

Use a literal HTTPS origin and an encoded response reference in the path or query.

Test mention-like content

Confirm respondent values cannot turn allowed mentions back on.

Inspect provider receipt

Check the sandbox channel on desktop and mobile after one saved test and one form submission.

Formatting boundaries that affect real answers

  • Advanced accepts a supported embed schema, not arbitrary Discord API JSON.
  • Values cannot choose colors, field names outside mapped strings, components, endpoints, or routing.
  • Interactive components and ticket state are not implemented.
  • A Discord embed is an alert surface, not the durable form response record.

If Discord embed formatting requires a behavior listed here as a limit, do not hide the gap with copy or assume a future feature exists. Change the workflow, separate the forms, or choose a system that owns the missing behavior. Clear boundaries make setup and incident response easier.

Test with punctuation, blank fields, and long answers

To accept Discord embed formatting, run both a saved configuration test and a real form submission because they answer different questions. The saved test checks whether the current credential, destination, and message can reach the provider. A real submission additionally checks the Google trigger, form binding, response rendering, and delivery path. Both results must succeed.

  1. 1Create a private test destination or tell the intended channel that a harmless test is coming.
  2. 2Use a copied form with short fictional values, including one blank optional answer and one value containing punctuation.
  3. 3Save the simplest supported mode first. Do not begin with a complex provider-specific Advanced structure.
  4. 4Run the destination test and confirm a harmless message in the intended Discord channel.
  5. 5Open the public responder view of the copied Google Form and submit it like a respondent would.
  6. 6Confirm that exactly one new message appears, that the form title and submission time are plausible, and that the message is visible only to the intended audience.
  7. 7Repeat once with a multiline answer and non-ASCII text. This catches formatting assumptions that a one-word test will miss.
  8. 8Return to the add-on and review the visible delivery status without pasting credentials into a support conversation.

When checking Discord embed formatting, a working saved test and a failed real submission point to trigger ownership, Google authorization, the selected form, or event eligibility. If neither works, inspect the destination credential and provider permissions first. If delivery succeeds but the content is hard to read, keep the credential unchanged and simplify the template. Changing one layer at a time preserves evidence.

ObservationMost useful interpretationNext check
Saved test failsProvider credential, destination, configuration, or entitlement problemRe-enter the credential privately and verify provider-side access
Saved test succeeds; form submission does notGoogle trigger, authorization, form binding, or event problemReopen the add-on as the trigger owner and inspect status
One submission creates two messagesMore than one active trigger or destination may existInspect active destinations and remove duplicate trigger ownership intentionally
Message arrives in the wrong roomThe credential points to a different destinationCreate or select the credential from the exact target destination
Basic works; Advanced failsThe provider-specific Advanced structure is invalidUse the provider validator and reintroduce fields one at a time

If Discord embed formatting still fails, use the provider-by-provider Google Forms notifications diagnostic guide. Record the test time, form name, destination name, and redacted error code. Never record submitted answers or the secret itself in a shared incident note.

Debug content separately from delivery

SymptomLikely causeWhat to do next
Embed rejectedProvider field or aggregate limit exceededRemove fields and reintroduce one at a time
Value breaks layoutUnbounded content is too longShorten the field or use Basic/Rich with a review reference
Wrong field appearsA token was typed instead of pickedReinsert the stable field variable through the picker
Basic fails tooCredential or channel issueReturn to Discord webhook setup

Understand where Discord formatting is applied

In Discord embed formatting, Google invokes a user-owned installable form-submit trigger after configuration. The add-on reads the submitted response, renders the selected message, and sends it to FormBeacon's delivery API. The service applies plan limits and idempotency, uses the encrypted destination configuration to call the selected provider, and stores redacted delivery metadata rather than submitted answer content or rendered notification bodies.

That architecture is the diagnostic map for Discord embed formatting. FormBeacon is not a direct browser-to-webhook shortcut, and it does operate a delivery service. At the same time, response answers do not become a searchable FormBeacon database. Google Forms remains the record you inspect or correct; the provider receives the message you explicitly send; FormBeacon retains only the bounded configuration and redacted operational data required to deliver and diagnose it.

  1. 1A respondent submits the Google Form and Google records the response.
  2. 2The verified form owner’s installable trigger runs for that submission.
  3. 3The add-on prepares a request containing the form and response references needed for delivery.
  4. 4FormBeacon validates identity, form entitlement, quota, destination configuration, and idempotency.
  5. 5The service calls the provider using an incoming-webhook URL created in the target Discord channel.
  6. 6On success, the service records redacted success metadata and counts one successful outbound destination delivery as one notification.
  7. 7On failure, the failed attempt does not consume the Free successful-delivery quota; an idempotent retry must not count the same delivery twice.

Before publishing Discord embed formatting, check provider behavior against Discord's webhook resource documentation, because provider interfaces, permissions, limits, and policy wording can change. Check FormBeacon's product behavior and prices on the pricing page and in the current add-on rather than inferring them from an old screenshot.

Keep sensitive answers out of decorative messages

For Discord embed formatting, a Discord webhook URL contains the credential needed to post. Keep it out of public documents and regenerate or delete the webhook in Discord if the URL is exposed.

Every delivery created by Discord embed formatting is a new copy of the notification. Google Form sharing does not automatically restrict a Slack channel, Discord channel, Telegram group, WhatsApp recipient, or webhook receiver. Before choosing Insert all fields, review every form question and assume every destination member can read the rendered values. For sensitive workflows, send a minimal reference and instruct authorized staff to open Google Forms rather than copying all answers into a notification.

  • Use the narrowest private destination that still supports the workflow.
  • Remove webhook URLs, bot tokens, access tokens, and real phone numbers from screenshots and screen recordings.
  • Do not submit real customer or employee data while testing.
  • Review provider retention, export, moderation, and member-access settings separately from FormBeacon.
  • Rotate an exposed credential at the provider, update FormBeacon, and run both tests again.
  • Delete test messages that contain even fictional data if they could confuse the operational channel later.

The privacy boundary for Discord embed formatting is specific: FormBeacon encrypts channel credentials and templates with versioned AES-256-GCM keys. It does not persist form answers, rendered notification bodies, raw provider payloads, OAuth or identity tokens, or complete billing webhook payloads. Retry storage in Google document properties is limited to form ID, response ID, idempotency key, and attempt count; the response is re-read from Google for a retry.

Those controls do not automatically make every form suitable for Discord embed formatting. You remain responsible for lawful collection, notices, consent where required, access control, retention at Google and the provider, and any industry-specific rules. This article explains product behavior and operational precautions; it is not legal advice.

Know which formats and destinations each plan supports

Before launching Discord embed formatting, match it to the pricing contract. Free supports one form, one active Basic destination on Slack, Discord, or Telegram, and 100 successful outbound destination deliveries per UTC calendar month. Standard supports up to 10 forms and Basic, Rich, and supported Advanced modes on Slack, Discord, and Telegram. Business adds WhatsApp approved templates, Webhook JSON, a shared 100-form workspace capacity, shared connectors, and unlimited explicitly invited workspace members.

For quota accounting in Discord embed formatting, one notification is one successful delivery to one outbound destination. If one response is sent to three active destinations and all three succeed, that is three successful deliveries. A failed delivery does not consume the Free quota, and an idempotent retry of the same delivery must not count twice. The Free counter resets lazily when the UTC month key changes; there is no reset cron to wait for.

Multiple destinations attached to Discord embed formatting use fan-out, not conditional routing. Every active destination on the form receives every eligible response. FormBeacon does not inspect an answer and select a destination, severity color, owner, or template branch. To keep different audiences separate, use separate forms or a workflow system that explicitly implements rules, and test that system with representative data.

Verify current FormBeacon amounts and included features for Discord embed formatting on the pricing page. Product prices and provider charges are different: Meta or another provider may apply its own usage charges, taxes, or policies, and those charges are not replaced by a FormBeacon subscription.

Maintain the template as the form changes

Treat Discord embed formatting like a small operational system. Name a form owner and a destination owner, document the purpose without recording secrets, and schedule a periodic harmless submission. Retest after changing form ownership, Google authorization, questions, destination membership, channel structure, webhook or bot settings, Meta templates, or the FormBeacon plan.

  • Keep a copy of the intended message structure without any credential or real response data.
  • Review whether every destination member still needs access to the notification content.
  • Remove unused destinations before creating new ones so fan-out remains understandable.
  • Use provider audit or administration features to investigate credential changes where available.
  • When an owner leaves, deliberately transfer the Google Form and recreate or verify the user-owned trigger under the intended owner.
  • During an incident, preserve timestamps and stable error codes, but redact identities, credentials, answers, and complete payloads.

The fallback for Discord embed formatting should remain visible: authorized staff can open Google Forms and inspect responses when chat delivery is delayed. Do not delete or mutate a form response simply because a notification failed. Repair the delivery path, make a harmless test, and use the response reference to reconcile operational action without copying the original answers into troubleshooting logs.

Frequently asked questions

Does FormBeacon store submitted answers?
No. FormBeacon does not persist answers, rendered messages, or raw provider payloads. Google Forms remains the response record; providers retain messages they accept under their own controls.
How are Google Form fields mapped?
The variable picker stores the stable Google item ID. Renaming a question or giving two items the same title does not redirect a saved variable to another field.
Can an answer choose a destination or credential?
No. Respondent values remain text and cannot control credentials, endpoints, recipients, object structure, template identity, or routing.
Can an answer choose the embed color?
No. Respondent values are text and cannot control provider structure, presentation settings, or routing.

Set this up on your own form

Follow the installation guide to install the add-on, connect a destination and send a test alert. FormBeacon does not persist form answers or rendered notification bodies.