Discord

The Gravity Forms Discord Add-On helps you send Gravity Forms submissions directly to Discord channels using Incoming Webhooks.

Overview

The Gravity Forms Discord Add-On helps you send Gravity Forms submissions directly to Discord channels using Incoming Webhooks. Instead of manually checking entries or building custom notification workflows, you can automatically post form submissions to Discord as rich embeds, map important field values into clean message layouts, and control delivery using native Gravity Forms feed settings.

Whether you want instant alerts for contact forms, lead notifications for sales teams, support intake posts, application routing, or internal operational updates, this add-on makes it easy to push form activity into the Discord channels your team already uses.

Key Features

  • 🚀 Send Form Entries to Discord Instantly: Deliver Gravity Forms submissions to Discord channels through Incoming Webhooks.
  • 🎨 Rich Embed Formatting: Post submissions as structured Discord embeds with titles, descriptions, colors, and mapped fields.
  • 🧩 Flexible Field Mapping: Map Gravity Forms field values and merge tags into Discord embed fields.
  • 🔀 Conditional Feed Logic: Send messages only when form data matches the conditions you define.
  • Asynchronous Processing: Process webhook deliveries in the background so form submissions are not delayed by Discord response time.
  • 🔁 Automatic Retry Handling: Retry temporary delivery failures, including rate limits and server-side errors.
  • Discord Rate Limit Awareness: Respect Discord’s Retry-After behavior when webhook requests are throttled.
  • 📬 Feed-Based Configuration: Create and manage Discord integrations per form using the Gravity Forms Feed Add-On framework.
  • 🧪 Built-In Test Sending: Send a test message before going live to confirm the webhook and message configuration are correct.
  • 🔄 Manual Resend Tools: Resend failed or previously sent entries from the entry detail screen or with bulk actions.
  • 📊 Delivery Status Tracking: Track whether a message was delivered, is retrying, or failed.
  • 📝 Entry Note Logging: Record delivery attempts in entry notes for visibility and troubleshooting.
  • 🙈 Webhook URL Masking: Protect sensitive webhook URLs in logs and admin output.
  • ⚙️ Native Gravity Forms Integration: Configure everything from familiar Gravity Forms form and feed settings screens.
  • 💬 Great for Team Notifications: Ideal for lead alerts, contact form notifications, support intake, registrations, applications, and internal workflow updates.

How It Works

The plugin adds Discord webhook delivery directly into the Gravity Forms feed workflow inside WordPress.

  1. Install and activate the add-on.
  2. Create an Incoming Webhook in Discord for the channel where you want messages posted.
  3. Open a form in Gravity Forms and go to Settings > Discord.
  4. Add a new Discord feed.
  5. Paste in the Discord webhook URL.
  6. Configure the embed title, description, color, and mapped fields.
  7. Optionally configure username/avatar overrides and conditional logic.
  8. Save the feed.
  9. Use Send Test to Discord to verify the setup.
  10. When a user submits the form, the add-on sends the configured entry data to Discord as a rich embed.
  11. If delivery is temporarily blocked by rate limits or transient errors, the add-on retries automatically.
  12. If needed, you can review delivery status, inspect entry notes, and resend entries manually.

Ideal Use Cases

  • Sales lead notifications
  • Contact form alerts
  • Support request intake
  • Job application notifications
  • Event registration monitoring
  • Internal operations alerts
  • Team-based workflow routing through Discord channels

Provide feedback here

Requirements

  • WordPress 6.5+
  • PHP 7.4+
  • Gravity Forms 2.9.24+
  • A Discord server with permission to create or manage webhooks

Documentation

Gravity Forms Discord Add-On Documentation

The Gravity Forms Discord Add-On connects Gravity Forms to Discord using Incoming Webhook URLs. Each feed sends a form submission to a Discord channel as a rich embed, with mapped form data, conditional logic support, retry handling, delivery status tracking, resend tools, and test sending built into the add-on.

This add-on is designed for sites that want Gravity Forms entries posted into Discord without using a bot, application registration, or OAuth flow.

Key Features

  • Send Gravity Forms submissions to Discord via Incoming Webhook
  • Create one or more feeds per form using the Gravity Forms Feed Add-On framework
  • Build a rich Discord embed from mapped form fields and merge tags
  • Support feed conditional logic
  • Process feeds asynchronously so submission redirects are not blocked by webhook delivery
  • Retry transient delivery failures using WP-Cron backoff
  • Honor Discord Retry-After when rate limited with HTTP 429
  • Store delivery status in entry meta and show it in the entries list
  • Add entry notes for delivery attempts
  • Resend a single entry from the entry detail screen
  • Resend entries in bulk from the entries list
  • Send a test message using the latest entry or generated sample data
  • Mask webhook URLs in logs using GF_Discord::mask_url()
  • Use the WordPress HTTP API and return WP_Error on transport failures

Requirements

  • WordPress 6.5+
  • PHP 7.4+
  • Gravity Forms 2.9.24+
  • A Discord server with permission to create or manage webhooks

Installation

  1. Upload the gravityformsdiscord folder to /wp-content/plugins/, or install the plugin zip from the WordPress Plugins screen.
  2. Activate Gravity Forms Discord Add-On.
  3. Ensure Gravity Forms is installed and active.
  4. In Discord, create an Incoming Webhook for the channel where messages should be posted.
  5. In WordPress, open your form and go to Settings → Discord.
  6. Create a new feed and paste the webhook URL.
  7. Configure the embed content and mapped fields.
  8. Save the feed and use Send Test to Discord before enabling it in production.

Using the Add-On

Typical workflow:

  1. Activate the plugin
  2. Open a Gravity Forms form
  3. Go to Settings → Discord
  4. Add a new Discord feed
  5. Paste the Discord webhook URL
  6. Set the embed title and description
  7. Map embed fields from form fields or custom merge-tag values
  8. Optionally configure username/avatar overrides and layout options
  9. Optionally apply conditional logic
  10. Save the feed
  11. Use Send Test to Discord
  12. Submit a real entry and monitor delivery status from the entries screen

Feed Settings

Location:

Form Settings → Discord

Available settings include:

Feed Name

An internal label used to identify the feed in the admin UI.

Webhook URL

The Discord Incoming Webhook URL used for delivery.

This is the only authentication mechanism used by the add-on. No bot token, app registration, or OAuth connection is required.

Embed Title

The embed title shown in Discord.

  • Supports Gravity Forms merge tags
  • Subject to Discord embed title length limits

Embed Description

The main body text of the embed.

  • Supports Gravity Forms merge tags
  • Subject to Discord embed description length limits

Embed Fields

Mapped rows that define the fields displayed in the Discord embed.

Each row typically contains:

  • field label/name
  • mapped Gravity Forms field or custom merge-tag value
  • inline display behavior, where applicable

The add-on limits fields to Discord’s embed constraints.

Embed Color

The embed accent color.

If left empty, the feed can fall back to the add-on’s default/global color when configured.

Display Embed Fields Inline

Controls whether mapped embed fields render side-by-side in Discord instead of stacked vertically.

Bot Username Override

Optionally override the webhook’s default display name for this feed.

Avatar URL Override

Optionally override the webhook’s default avatar image for this feed.

Conditional Logic

Use standard Gravity Forms feed conditional logic to determine whether the Discord message should be sent for a given submission.

Message Format

Each feed posts a Discord webhook payload containing a single embed.

Typical payload shape:

{
  "embeds": [
    {
      "title": "New submission",
      "description": "A new form entry was received.",
      "color": 5793266,
      "fields": [
        { "name": "Name", "value": "Jane Doe", "inline": true },
        { "name": "Email", "value": "[email protected]", "inline": true }
      ]
    }
  ]
}
Code language: JSON / JSON with Comments (json)

The add-on can also include:

  • username
  • avatar_url

These are added only when overrides are configured on the feed.

Reliability and Delivery Behavior

The add-on is built to support reliable webhook delivery and recovery behavior.

Async Processing

Feeds are processed asynchronously so Discord latency does not delay the front-end submission flow.

Retry Handling

Transient failures are retried through WP-Cron with backoff.

Behavior includes:

  • 200 / 204: delivery succeeded
  • 429: retry after Discord’s Retry-After
  • 404: stop retrying because the webhook is no longer valid
  • other 4xx: permanent failure
  • 5xx and transport errors: retry with backoff

Delivery Status

Each entry stores delivery status meta, and the entries list can show a Discord Delivery indicator.

Statuses include:

  • delivered
  • retrying
  • failed

Entry Notes

Delivery attempts are recorded as entry notes for troubleshooting and audit visibility.

Resend Tools

The add-on supports:

  • single resend from the entry detail sidebar
  • bulk resend from the entries list

Send Test

A Send Test action can post a sample Discord message using either:

  • the most recent real entry
  • generated sample data when needed

Discord Limits and Formatting Notes

The delivery class accounts for Discord embed limits, including limits for:

  • title
  • description
  • field name
  • field value
  • total field count

If configured content exceeds Discord limits, it should be trimmed or constrained to valid embed sizes before sending.

Logging and Security

  • Webhook URLs should not be exposed in plain text in logs or notes
  • The add-on includes URL masking for webhook logging
  • Transport failures use WP_Error
  • Outbound requests use the WordPress HTTP API

Permissions and Access

The add-on uses Gravity Forms Add-On Framework capabilities.

Relevant capabilities include:

  • gravityforms_discord
  • gravityforms_discord_uninstall

Users need appropriate Gravity Forms administrative permissions to manage settings, feeds, resend actions, and test sends.

Hooks

gform_discord_request_body

Filters the webhook request payload before it is JSON-encoded and sent to Discord.

Use this hook to customize the payload before delivery.

Entry and Admin Experience

The add-on includes admin tooling for monitoring and recovery:

  • delivery status in the entries list
  • resend action in entry detail
  • bulk resend action
  • AJAX-based test send support

Development

PHP Tooling

composer install

composer install-tests

composer phpunit

composer phpcs

composer phpstan

Basic File Checks

php -l discord.php

php -l class-gf-discord.php

php -l includes/class-gf-discord-delivery.php

Version and License

  • Version: 0.1.0-alpha.1
  • License: GPL-3.0-or-later

Support Notes

This project is described as a Gravity Labs project and is not officially supported.