{"id":319532,"date":"2026-05-29T22:24:18","date_gmt":"2026-05-29T22:24:18","guid":{"rendered":"https:\/\/en-gb.wordpress.org\/plugins\/broadcaster-auto-responder-for-gravity-forms\/"},"modified":"2026-05-29T22:23:48","modified_gmt":"2026-05-29T22:23:48","slug":"broadcaster-auto-responder-for-gravity-forms","status":"publish","type":"plugin","link":"https:\/\/mri.wordpress.org\/plugins\/broadcaster-auto-responder-for-gravity-forms\/","author":14422525,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.5","stable_tag":"1.1.5","tested":"7.0","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Broadcaster Auto Responder for Gravity Forms","header_author":"Fullworks","header_description":"Sends Gravity Forms submissions to Broadcaster as incoming WhatsApp contact messages and triggers an optional template auto-response.","assets_banners_color":"cfcfce","last_updated":"2026-05-29 22:23:48","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/getbroadcaster.com\/docs\/gravity-forms-addon","header_author_uri":"https:\/\/fullworks.net\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":22,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.5":{"tag":"1.1.5","author":"fullworks","date":"2026-05-29 22:23:48"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3554230,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3554230,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3554230,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3554230,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.5"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[6412,265018,358,1655,3160],"plugin_category":[],"plugin_contributors":[196325,79438],"plugin_business_model":[],"class_list":["post-319532","plugin","type-plugin","status-publish","hentry","plugin_tags-auto-responder","plugin_tags-broadcaster","plugin_tags-contact-form","plugin_tags-gravity-forms","plugin_tags-whatsapp","plugin_contributors-alanfuller","plugin_contributors-fullworks","plugin_committers-fullworks"],"banners":{"banner":"https:\/\/ps.w.org\/broadcaster-auto-responder-for-gravity-forms\/assets\/banner-772x250.png?rev=3554230","banner_2x":"https:\/\/ps.w.org\/broadcaster-auto-responder-for-gravity-forms\/assets\/banner-1544x500.png?rev=3554230","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/broadcaster-auto-responder-for-gravity-forms\/assets\/icon-128x128.png?rev=3554230","icon_2x":"https:\/\/ps.w.org\/broadcaster-auto-responder-for-gravity-forms\/assets\/icon-256x256.png?rev=3554230","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>This is a connector plugin for <a href=\"https:\/\/getbroadcaster.com\">Broadcaster<\/a>, a paid SaaS platform for business WhatsApp management. It is not a free WhatsApp integration; it requires an active Broadcaster account.<\/strong> If you do not have one, this plugin will not do anything useful on its own.<\/p>\n\n<p>If you <em>are<\/em> a Broadcaster customer using Gravity Forms on a WordPress site, this plugin forwards each form submission into your Broadcaster inbox as an incoming contact message, and can optionally trigger an approved WhatsApp template reply (in business hours, out of business hours, or both: Broadcaster picks based on your company's business-hours settings).<\/p>\n\n<p><strong>Full setup and configuration documentation:<\/strong> <a href=\"https:\/\/getbroadcaster.com\/docs\/gravity-forms-addon\">getbroadcaster.com\/docs\/gravity-forms-addon<\/a><\/p>\n\n<h4>What it does<\/h4>\n\n<ul>\n<li>For each form you opt in to, the submission becomes an incoming contact message in Broadcaster, attributed to the form so support staff know where the contact came from.<\/li>\n<li>Each submission can trigger one optional template auto-response: either a single template that always fires, or two templates (in-hours \/ out-of-hours), and Broadcaster picks based on your company's configured business hours.<\/li>\n<li>A dedicated <strong>WhatsApp Recipient<\/strong> custom field (under <em>Advanced Fields<\/em> in the form editor) captures the contact's phone number in a single input, validates the format inline before form submission, and prevents the submitter from accidentally collecting a typo'd number that Broadcaster would later silently fail to deliver to. Or use any standard Gravity Forms field as the recipient mapping for backward compatibility.<\/li>\n<li>Phone or WhatsApp username (or both) are mapped from form fields you nominate.<\/li>\n<li>Standard Gravity Forms merge tags work in the message body and in template placeholder values.<\/li>\n<li>Standard Gravity Forms conditional logic decides whether a feed runs for a given submission.<\/li>\n<li>Failures never block the form: a Broadcaster outage doesn't stop the user's submission, the email notification, or the confirmation page. When Broadcaster declines a recipient as undeliverable, the failure is surfaced inline on the Gravity Forms entry detail so site administrators can see what didn't deliver and why.<\/li>\n<\/ul>\n\n<h4>What it does *not* do<\/h4>\n\n<ul>\n<li>It does <strong>not<\/strong> give you WhatsApp messaging. It just hands form submissions to your Broadcaster account, which is what actually talks to WhatsApp Business.<\/li>\n<li>It does <strong>not<\/strong> create a Broadcaster account, manage templates, or open the WhatsApp customer-service window. Templates must already exist and be approved on the Broadcaster side.<\/li>\n<li>It does <strong>not<\/strong> do full phone-number validation. The <strong>WhatsApp Recipient<\/strong> field does normalise national-format numbers to international format (<code>+44\u2026<\/code>, <code>+1\u2026<\/code>) using the country you configure, and catches obvious typos before submit, but Broadcaster's own normalization rules remain the source of truth. For other field types, submit numbers in international format where possible.<\/li>\n<\/ul>\n\n<h4>Ownership and affiliation<\/h4>\n\n<p>This plugin, the <strong>Broadcaster<\/strong> service it connects to (<a href=\"https:\/\/getbroadcaster.com\">getbroadcaster.com<\/a>), the <strong>Fullworks<\/strong> brand (<a href=\"https:\/\/fullworks.net\">fullworks.net<\/a>) and <strong>Fullworks Plugins<\/strong> (<a href=\"https:\/\/fullworksplugins.com\">fullworksplugins.com<\/a>) are all owned and operated by Fullworks Digital Ltd, a company registered in England and Wales, the same company that publishes this plugin on WordPress.org under the account \"fullworks\". Broadcaster is our own product, not a third party's.<\/p>\n\n<p>\"Gravity Forms\" is a trademark of Rocketgenius, Inc. and \"WhatsApp\" is a trademark of Meta Platforms, Inc. This plugin is an independent, unofficial add-on and uses those names only to describe what it is compatible with.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>This plugin is a connector to <strong>Broadcaster<\/strong> (<a href=\"https:\/\/getbroadcaster.com\">getbroadcaster.com<\/a>), a third-party WhatsApp business-messaging platform operated by Fullworks Digital Ltd. When you connect a Gravity Form to Broadcaster and a submission is received, the plugin transmits the following personal data from that submission to Broadcaster's servers:<\/p>\n\n<ul>\n<li>The contact's phone number and\/or WhatsApp username (as mapped in the feed).<\/li>\n<li>The submitter's name, when a name field is mapped.<\/li>\n<li>The message text and any form-field values you include in the message body or template placeholders.<\/li>\n<li>A form identifier and source label used to attribute the message inside Broadcaster.<\/li>\n<\/ul>\n\n<p>Data is sent <strong>only<\/strong> for forms you have explicitly connected to Broadcaster, and <strong>only<\/strong> when a Broadcaster API key is configured. No data is sent before then, and the plugin contacts no other external service. Nothing is collected for the plugin's own purposes: no telemetry, analytics, or tracking.<\/p>\n\n<p>Broadcaster processes the data it receives under its own <a href=\"https:\/\/getbroadcaster.com\/privacy\">Privacy Policy<\/a> and <a href=\"https:\/\/getbroadcaster.com\/terms\">Terms of Use<\/a>. The plugin also registers suggested disclosure text under <strong>Settings \u2192 Privacy<\/strong> in WordPress, so you can fold this data flow into your site's own privacy policy.<\/p>\n\n<h3>Source Code<\/h3>\n\n<p>This plugin ships its complete, unminified PHP, JavaScript and CSS source inside the distributed package; there is no separate obfuscation or minification build step, so the code you run is exactly the code you can read. For support or to report an issue, use the plugin's support forum on WordPress.org.<\/p>\n\n<h3>Troubleshooting<\/h3>\n\n<h4>\"Broadcaster API key is not configured\" admin notice<\/h4>\n\n<p>Configure the API key under <em>Forms \u2192 Settings \u2192 Broadcaster<\/em>.<\/p>\n\n<h4>\"Gravity Forms is not active\" admin notice<\/h4>\n\n<p>Install and activate Gravity Forms. This plugin needs Gravity Forms to do anything; it sits idle until Gravity Forms is present.<\/p>\n\n<h4>\"\u2717 Not connected. Broadcaster rejected the API key (HTTP 401\/403).\"<\/h4>\n\n<p>The saved key is wrong, has been revoked, or belongs to a different company. Re-issue an API key in Broadcaster under <em>Settings \u2192 API Keys<\/em>, paste it on the WP side, save.<\/p>\n\n<h4>\"\u2717 Not connected. Broadcaster URL responded but the messages endpoint was not found (HTTP 404).\"<\/h4>\n\n<p>Only relevant on dev\/staging\/local. The URL points at a host that isn't a Broadcaster instance, or one that hasn't been updated to a build that includes the contact-form API. Production sites use <code>https:\/\/getbroadcaster.com<\/code> and won't see this.<\/p>\n\n<h4>\"\u2717 Not connected. Cannot reach Broadcaster: \u2026\"<\/h4>\n\n<p>The site can't open an HTTPS connection to Broadcaster. Check outbound firewall \/ proxy \/ DNS on the WordPress server.<\/p>\n\n<h4>Form submission shows no error but nothing arrives in Broadcaster<\/h4>\n\n<p>Open <em>Forms \u2192 Settings \u2192 Logging<\/em> and enable the <strong>Broadcaster Auto Responder for Gravity Forms<\/strong> logger at <em>Log all messages<\/em>. Submit again, then download the log. Common causes:<\/p>\n\n<ul>\n<li>Conditional logic on the feed didn't match the submission.<\/li>\n<li>Neither phone nor WhatsApp username was mapped, or the mapped field was empty.<\/li>\n<li>Template name in feed config doesn't match an approved Broadcaster template.<\/li>\n<li>Required template variable missing from placeholder map.<\/li>\n<li>Phone\/username normalization mismatch: contact gets created on the Broadcaster side but template send fails because the recipient can't be resolved.<\/li>\n<\/ul>\n\n<h4>\"Broadcaster rejected the message (HTTP 422). The form id field must be a string.\"<\/h4>\n\n<p>Indicates a plugin\/Broadcaster version mismatch. Upgrade this plugin to 1.0.0 or later.<\/p>\n\n<!--section=installation-->\n<h4>Prerequisites<\/h4>\n\n<ol>\n<li>An active <strong>Broadcaster<\/strong> account at <a href=\"https:\/\/getbroadcaster.com\">getbroadcaster.com<\/a>.<\/li>\n<li><strong>Gravity Forms<\/strong> installed and active on your WordPress site (Gravity Forms is a third-party paid plugin).<\/li>\n<\/ol>\n\n<h4>Install the plugin<\/h4>\n\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/broadcaster-auto-responder-for-gravity-forms<\/code> (or install the zip via <em>Plugins \u2192 Add New \u2192 Upload Plugin<\/em>) and activate it.<\/li>\n<li>In WordPress admin, go to <strong>Forms \u2192 Settings \u2192 Broadcaster<\/strong>.<\/li>\n<li>Paste your Broadcaster API key (generate one in Broadcaster under <em>Settings \u2192 API Keys<\/em>) and click <strong>Save Settings<\/strong>.<\/li>\n<li>After save, the page shows <strong>\u2713 Connected<\/strong> if Broadcaster accepts the key, or <strong>\u2717 Not connected<\/strong> with a reason if it does not.<\/li>\n<\/ol>\n\n<p>The Broadcaster site URL is hardcoded to <code>https:\/\/getbroadcaster.com<\/code> on production sites. On dev\/staging\/local environments (sites where <code>WP_ENVIRONMENT_TYPE<\/code> is not <code>production<\/code>) the URL field is editable so you can point at a non-prod Broadcaster instance.<\/p>\n\n<h4>Configure a form<\/h4>\n\n<ol>\n<li>Edit the Gravity Form you want to forward.<\/li>\n<li>Open <strong>Settings \u2192 Broadcaster<\/strong> in the form editor and click <strong>Add New<\/strong> to create a feed.<\/li>\n<li>Set the feed name and (optionally) a <strong>Source label<\/strong>, which is what shows in Broadcaster chat bubbles to identify where the message came from. Defaults to the form's title.<\/li>\n<li>Map at least one of:\n\n<ul>\n<li><strong>Phone field<\/strong>: the form field that holds the contact's phone number.<\/li>\n<li><strong>WhatsApp username field<\/strong>: for contacts who send via WhatsApp username\/BSUID rather than phone.<\/li>\n<\/ul><\/li>\n<li>Optionally map a <strong>Submitter name field<\/strong>.<\/li>\n<li>Write the <strong>Message text<\/strong> the contact's submission becomes inside Broadcaster. Gravity Forms merge tags work, for example <code>{Message:5}<\/code> or <code>{Name (First):1.3}<\/code>.<\/li>\n<li>Optionally fill the <strong>In-hours template name<\/strong> (the <em>internal<\/em> name of an approved Broadcaster template). If only this field is set, Broadcaster uses it at all times. If both this and the out-of-hours template name are set, Broadcaster picks by company business hours. If neither is set, no auto-response is sent.<\/li>\n<li>Optionally fill the <strong>In-hours template placeholders<\/strong> as comma-separated <code>key:value<\/code> pairs. Values may include merge tags. Example:\n   text_1:{Message:5},client_first_name:{Name (First):1.3}<\/li>\n<li>Repeat for <strong>Out-of-hours template name<\/strong> and <strong>Out-of-hours template placeholders<\/strong> if you want a different reply outside business hours.<\/li>\n<li>(Optional) Use Gravity Forms' standard <strong>Conditional logic<\/strong> to run the feed only when chosen form fields match.<\/li>\n<li>Save the feed. Submit the form to test; the message should appear in Broadcaster within seconds, and the auto-response (if configured) should send shortly after.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20paid%20broadcaster%20account%3F\"><h3>Do I need a paid Broadcaster account?<\/h3><\/dt>\n<dd><p>Yes. This plugin is a connector for <a href=\"https:\/\/getbroadcaster.com\">Broadcaster<\/a>, a paid SaaS platform for business WhatsApp management. Without an active Broadcaster account and an API key, the plugin has nothing to talk to.<\/p><\/dd>\n<dt id=\"how%20can%20i%20evaluate%20this%20before%20committing%3F\"><h3>How can I evaluate this before committing?<\/h3><\/dt>\n<dd><p>Broadcaster offers a <strong>30-day free trial<\/strong>, so you can test the whole flow end to end. The trial itself is free; the only possible cost is Meta's own WhatsApp charges if you send template messages, which Meta bills you for directly (that billing relationship is between you and Meta, not this plugin).<\/p>\n\n<ol>\n<li>Sign up at <a href=\"https:\/\/getbroadcaster.com\/pricing\">getbroadcaster.com\/pricing<\/a>.<\/li>\n<li>In Broadcaster, connect your own Meta (WhatsApp Business) account and a phone number to send from.<\/li>\n<li>In Broadcaster, create an API key (<em>Settings \u2192 API Keys<\/em>).<\/li>\n<li>In WordPress, go to <em>Forms \u2192 Settings \u2192 Broadcaster<\/em> and paste the API key. A green <strong>\u2713 Connected<\/strong> confirms it.<\/li>\n<li>Edit a Gravity Form and add the <strong>WhatsApp Recipient<\/strong> field (under <em>Advanced Fields<\/em>) to capture the contact's number.<\/li>\n<li>Open the form's <em>Settings \u2192 Broadcaster<\/em> and add a feed mapping that field, plus your message text and (optionally) a template.<\/li>\n<\/ol>\n\n<p>Submit the form, and the message should appear in your Broadcaster inbox within seconds.<\/p><\/dd>\n<dt id=\"is%20this%20an%20official%20gravity%20forms%20add-on%3F\"><h3>Is this an official Gravity Forms add-on?<\/h3><\/dt>\n<dd><p>No. This plugin is built on the public Gravity Forms Feed Add-On Framework but is published independently by Fullworks. Gravity Forms itself must be installed separately.<\/p><\/dd>\n<dt id=\"will%20broadcaster%20outages%20break%20my%20forms%3F\"><h3>Will Broadcaster outages break my forms?<\/h3><\/dt>\n<dd><p>No. If the Broadcaster API is unreachable or rejects the request, the form submission still completes; Gravity Forms confirmations and notification emails proceed as normal. The failed dispatch is recorded under <em>Forms \u2192 Settings \u2192 Logging<\/em> (when GF logging is enabled).<\/p><\/dd>\n<dt id=\"where%20do%20template%20names%20come%20from%3F\"><h3>Where do template names come from?<\/h3><\/dt>\n<dd><p>You enter the <strong>internal name<\/strong> of an approved Broadcaster template (the slug-style name visible inside Broadcaster's template management UI, not the display title). Templates must already exist and be approved on the Broadcaster side; this plugin doesn't create or sync templates.<\/p><\/dd>\n<dt id=\"what%27s%20the%20difference%20between%20%22message%20text%22%20and%20the%20templates%3F\"><h3>What's the difference between \"Message text\" and the templates?<\/h3><\/dt>\n<dd><p>The <strong>Message text<\/strong> is the inbound contact message stored in Broadcaster, which is what your support staff sees in the chat thread. The <strong>template<\/strong> is the optional outbound auto-response sent to the contact's WhatsApp. Broadcaster won't send a message to a recipient whose WhatsApp customer-service window isn't open <em>unless<\/em> a template is used; that's why this plugin offers template fields.<\/p><\/dd>\n<dt id=\"can%20i%20run%20multiple%20feeds%20on%20one%20form%3F\"><h3>Can I run multiple feeds on one form?<\/h3><\/dt>\n<dd><p>Yes. Add as many feeds as you like per form. Use Gravity Forms' standard conditional logic to send different submissions to different Broadcaster destinations.<\/p><\/dd>\n<dt id=\"how%20do%20i%20match%20by%20whatsapp%20username%20only%20%28no%20phone%29%3F\"><h3>How do I match by WhatsApp username only (no phone)?<\/h3><\/dt>\n<dd><p>Map the <strong>WhatsApp username field<\/strong> but leave the phone field unmapped. Broadcaster will store\/match by username. Note that auto-response template delivery currently requires a phone or BSUID Broadcaster can resolve; username-only contacts can be created but template delivery may report <code>recipient_not_deliverable<\/code> until that resolves.<\/p><\/dd>\n<dt id=\"what%27s%20the%20whatsapp%20recipient%20field%2C%20and%20should%20i%20use%20it%20instead%20of%20a%20stock%20phone%20field%3F\"><h3>What's the WhatsApp Recipient field, and should I use it instead of a stock phone field?<\/h3><\/dt>\n<dd><p>It's a custom field type this plugin adds, found under <em>Advanced Fields<\/em> in the Gravity Forms editor. It accepts a phone number in any reasonable format (with or without a country code), validates inline before submit so the visitor sees typos as a \"Please enter a valid phone number\" error and corrects them on the spot, and pre-cleans the value to international format so Broadcaster receives clean data. Use it on new forms and on any form where silent lead-drops have been a problem. Existing forms with stock Gravity Forms phone \/ text fields continue to work exactly as before; the new field is opt-in. (A future release will also accept WhatsApp usernames in the same field, once Meta enables that feature publicly.)<\/p><\/dd>\n<dt id=\"phone%20numbers%20in%20national%20format%20don%27t%20match%20my%20existing%20contacts.%20why%3F\"><h3>Phone numbers in national format don't match my existing contacts. Why?<\/h3><\/dt>\n<dd><p>Broadcaster's phone normalization needs to know which country to interpret a national-format number against. The <strong>WhatsApp Recipient<\/strong> field handles this for you: configure a default country under <em>Forms \u2192 Settings \u2192 Broadcaster \u2192 Phone normalisation<\/em>, and the field assumes that country whenever a submitter types a national-format number (and overrides it whenever they type an explicit <code>+<\/code> international prefix). For stock Gravity Forms phone fields, configure the field to require international format, or rely on Broadcaster's company-level default phone country.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.5<\/h4>\n\n<p>Wp Org release<\/p>\n\n<h4>1.1.4<\/h4>\n\n<ul>\n<li><strong>WordPress.org compliance.<\/strong> All admin JavaScript and CSS is now loaded through the standard WordPress enqueue functions instead of being printed inline. The form-editor helper script and the connection-status styling load via <code>wp_enqueue_script<\/code> \/ <code>wp_enqueue_style<\/code>; there is no change to how the plugin behaves.<\/li>\n<li><strong>Hardening.<\/strong> Auto-response and recipient-rejection details returned by Broadcaster are now passed through <code>sanitize_text_field()<\/code> before being written to a Gravity Forms entry note.<\/li>\n<li><strong>WhatsApp Recipient field<\/strong> now uses natural tab order rather than emitting its own tabindex attribute. On the vast majority of forms this is invisible; forms that set a custom Gravity Forms tab-index start will see this field follow normal source order.<\/li>\n<li><strong>Maintenance:<\/strong> removed the placeholder Screenshots section from the readme until images are bundled, deleted an unused internal helper, and updated the development environment dependency.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li><strong>Privacy disclosure.<\/strong> Added a Privacy section to this readme spelling out exactly what submission data is sent to Broadcaster, and registered suggested privacy-policy text in WordPress (<em>Settings \u2192 Privacy<\/em>) so site owners can disclose the data flow to their visitors. The plugin's data handling is unchanged; this surfaces what already happens.<\/li>\n<li><strong>Admin notices are now scoped.<\/strong> The \"Gravity Forms not active\" and \"API key not configured\" warnings now appear only on the Plugins list, Dashboard, and Gravity Forms admin pages (where they're actionable) instead of on every admin screen. Both still disappear automatically once resolved.<\/li>\n<li><strong>Maintenance:<\/strong> pointed the plugin \/ add-on link at the documentation page (<code>getbroadcaster.com\/docs\/gravity-forms-addon<\/code>), inlined output escaping in the form-editor inline script, and documented why the Gravity Forms tab-index attribute is emitted as-is. No functional change.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li><strong>The auto-response outcome is now visible in Gravity Forms.<\/strong> After Broadcaster accepts a submission, the plugin reads the <code>auto_response<\/code> block from the response and writes a clearer entry note: \"sent auto-response (<code>&lt;template&gt;<\/code>, slot: <code>&lt;in_hours|out_of_hours&gt;<\/code>)\" when the reply went out, \"auto-response failed: <code>&lt;error_code&gt;<\/code> - <code>&lt;message&gt;<\/code>\" when Broadcaster declined to send it (e.g. a missing template placeholder or an unapproved template), or the existing \"received this submission (HTTP 201).\" when the feed has no template configured. The full result is also logged under <em>Forms \u2192 Settings \u2192 Logging<\/em> with the entry ID for correlation.<\/li>\n<li><strong>Fixed:<\/strong> the API response body was parsed from the wrong path, so the <code>auto_response<\/code> error code (used by the WhatsApp Recipient field rejection notices) was never actually read. It now reads <code>data.auto_response<\/code> correctly, so recipient rejections through a WhatsApp Recipient field surface inline as intended.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li><strong>WhatsApp Recipient field now has a Field Size setting.<\/strong> Like other Gravity Forms fields, it now shows the Small \/ Medium \/ Large size control in the form editor's field settings; previously the size was fixed and could not be changed from the editor. New fields still default to Large.<\/li>\n<li><strong>WhatsApp Recipient field can now be used in conditional logic.<\/strong> It now appears in the \"based on\" field list when adding conditional logic to other fields, feeds, notifications and confirmations, e.g. show or hide another field depending on whether a WhatsApp recipient was entered. Previously the field was missing from those lists.<\/li>\n<li><strong>National-format phone numbers are now shown (and stored) in international format.<\/strong> When a submitter types a national-format number into a WhatsApp Recipient field and moves to the next field, the value is rewritten to international format (for example <code>07714681600<\/code> becomes <code>+447714681600<\/code>, using the field's or plugin's default country) so the country assumption is visible before submitting. The Gravity Forms entry, exports and the feed's recipient mapping then carry the international number. WhatsApp usernames (<code>@name<\/code>) are never altered; they are stored exactly as entered. If JavaScript is unavailable the number is still normalised when the entry is saved.<\/li>\n<li><strong>Fixed:<\/strong> uninstalling the plugin now removes its stored settings. A stale option name meant the connection, phone-country and related settings were previously left in the database after uninstall.<\/li>\n<li><strong>Maintenance:<\/strong> bundled the translation template (<code>.pot<\/code>), simplified how the add-on menu icon loads, refreshed the plugin home-page link, and added explicit ownership \/ trademark notes. No functional change.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li><strong>New WhatsApp Recipient field.<\/strong> A dedicated custom field type, under <em>Advanced Fields<\/em> in the Gravity Forms editor, that captures the contact's phone number in a single input and validates the format inline before form submission. Submitters see typos as a \"Please enter a valid phone number\" error and correct them on the spot, instead of having the form succeed and Broadcaster reject the lead silently downstream. Existing forms with stock Gravity Forms phone \/ text field mappings keep working exactly as before; the new field is opt-in.<\/li>\n<li><strong>New \"Default phone country\" plugin setting<\/strong> (<em>Forms \u2192 Settings \u2192 Broadcaster \u2192 Phone normalisation<\/em>). When a submitter types a national-format number into a WhatsApp Recipient field, this is the country we will assume. ISO-3166 alpha-2 picker covering United Kingdom, United States, Ireland, Australia, India, Indonesia. Each WhatsApp Recipient field also has its own per-field override for forms that target a different country than the rest of the site.<\/li>\n<li><strong>Broadcaster recipient rejections are now visible to administrators.<\/strong> When Broadcaster declines a recipient through a WhatsApp Recipient field (HTTP 422 on dispatch, or <code>recipient_not_deliverable<\/code> in the response), the rejection is surfaced inline beside the field on the Gravity Forms entry detail view, plus an audit-trail note in the GF notes panel and a one-line log entry under <em>Forms \u2192 Settings \u2192 Logging<\/em>. Form submission itself is never blocked; this only affects the diagnostic surface administrators see after the fact.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li><strong>Critical fix:<\/strong> the v1.0.0 and v1.0.1 release zips were built without the plugin's <code>vendor\/autoload.php<\/code>, causing a fatal error when opening <em>Forms \u2192 Settings \u2192 Broadcaster<\/em> (<code>Class \"BroadcasterGF\\Api\\Client\" not found<\/code>). The release workflow now runs <code>composer install --no-dev --optimize-autoloader<\/code> inside the plugin directory before packaging the zip, so the autoloader and namespaced classes ship correctly. Anyone running v1.0.0 or v1.0.1 should upgrade immediately.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Tightened the WordPress.org short description to fit within the 150-character limit.<\/li>\n<li>Release-workflow polish: corrected the <code>vv1.0.0<\/code>-style title in GitHub Release notes, fixed the boilerplate-leftover settings-path text, bumped <code>actions\/checkout<\/code> and <code>softprops\/action-gh-release<\/code> to versions that run on Node.js 24.<\/li>\n<li>No functional changes to the plugin code itself.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Per-form Gravity Forms feeds that forward submissions into Broadcaster as incoming WhatsApp contact messages.<\/li>\n<li>Optional in-hours \/ out-of-hours template auto-responses with comma-separated <code>key:value<\/code> placeholders and merge-tag support in values.<\/li>\n<li>Connection settings under <em>Forms \u2192 Settings \u2192 Broadcaster<\/em> with live \u2713\/\u2717 feedback against the saved API key.<\/li>\n<li>Production-locked Broadcaster URL (<code>https:\/\/getbroadcaster.com<\/code>); editable on dev\/staging\/local.<\/li>\n<li>Source-label feed setting that populates the chat-bubble origin shown in Broadcaster.<\/li>\n<li>Failures never block Gravity Forms confirmation or notification emails; diagnostics flow to <em>Forms \u2192 Settings \u2192 Logging<\/em>.<\/li>\n<\/ul>","raw_excerpt":"Forward Gravity Forms submissions to Broadcaster (paid WhatsApp business platform) as inbound contact messages with optional template reply.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/319532","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=319532"}],"author":[{"embeddable":true,"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/fullworks"}],"wp:attachment":[{"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=319532"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=319532"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=319532"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=319532"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=319532"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=319532"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}