1. Overview
FormCourier Notifications Pro is a WordPress notification and routing plugin for form submissions. It normalizes submissions from supported form builders, evaluates routing rules, and sends notifications through configured providers.
Supported form builders
- Contact Form 7
- WPForms
- Fluent Forms
- Forminator
- Ninja Forms
- Gravity Forms
Notification channels
- Telegram
- Slack via Incoming Webhooks
- WhatsApp Cloud API
You only need to configure the providers you intend to use.
2. Requirements
| Component | Requirement |
|---|---|
| WordPress | 6.0 or later |
| PHP | 7.4 or later |
| Form plugin | At least one supported form builder for form submission notifications |
| Telegram | Bot token and target chat/channel access |
| Slack | Slack Incoming Webhook URL |
| Meta WhatsApp Cloud API setup, Phone Number ID, access token and recipient; approved template for template mode |
3. Installation
- Unzip the marketplace download on your computer.
- Open the
Pluginfolder. - In WordPress go to Plugins → Add New → Upload Plugin.
- Upload
formcourier-notifications-pro-1.10.0.zip. - Click Install Now, then Activate.
- Open the FormCourier Notifications Pro administration page and configure at least one notification provider.
formcourier-notifications-pro ZIP file through WordPress. Do not upload a marketplace package or documentation archive as a WordPress plugin.4. Quick Start
- Configure a Telegram, Slack or WhatsApp destination.
- Use the provider's test action to confirm connectivity.
- Open Forms in FormCourier and select destinations for the desired form.
- Submit the real form once.
- Open Logs and confirm successful delivery.
Advanced Routing is optional. Normal Form Routes are enough for standard per-form delivery.
5. Telegram Setup
- Create or use an existing Telegram bot and obtain its bot token.
- Add the bot to the target chat/channel with sufficient permission to send messages.
- In FormCourier, add a Telegram destination with the bot token and Chat ID.
- Optionally mark a destination as the default.
- Save and run the connection test.
Multiple Telegram destinations are supported. A form can route to one or more destinations. The default destination is used as fallback where applicable.
6. Slack Setup
- Create an Incoming Webhook in your Slack workspace for the desired channel.
- Copy the Incoming Webhook URL.
- Add a Slack destination in FormCourier and save the webhook URL.
- Optionally select it as the default Slack destination.
- Run the connection test.
You can create multiple Slack destinations and route different forms or conditions to different channels.
7. WhatsApp Cloud API Setup
WhatsApp configuration requires a Meta WhatsApp Cloud API environment. FormCourier supports free-form messages and approved template messages.
Destination configuration
- Prepare your Meta App / WhatsApp Business Account and WhatsApp phone number.
- Enter the required WhatsApp configuration in FormCourier, including the Phone Number ID and access token.
- Add the recipient phone number for the destination.
- Choose Free-form text or Approved template delivery mode.
- Save and test.
Free-form text and the 24-hour window
Free-form WhatsApp messages are intended for the customer-service conversation window. Outside that window, use an approved WhatsApp template.
Approved template mode
Enter the exact approved Meta template name and language configured for the template. If your template BODY contains one variable such as {{1}}, FormCourier can pass the complete rendered notification as that BODY parameter. A template without BODY variables can also be selected.
Delivery status webhook
FormCourier includes a WhatsApp webhook endpoint for status callbacks. Configure the webhook URL and verify token shown by the plugin in your Meta setup. The plugin validates signed POST callbacks using the configured Meta App Secret and can record delivery states such as sent, delivered, read and failed.
WABA subscription diagnostic
The WhatsApp diagnostics can help confirm whether the Meta App is subscribed to the WhatsApp Business Account. An API request being accepted does not by itself guarantee that delivery-status callbacks are configured correctly.
8. Form Routes
Form Routes map discovered WordPress forms to destinations. FormCourier discovers forms from the supported builders and lets you select Telegram, Slack and WhatsApp destinations independently.
- A form may send to multiple destinations.
- Channels are independent: a Telegram failure does not require duplicating a successful Slack or WhatsApp delivery.
- Default destinations provide fallback behavior where configured.
9. Advanced Routing
Advanced Routing is optional and adds conditional delivery rules on top of normal Form Routes.
Conditions
Create multiple field conditions and choose ALL (AND) when every condition must match, or ANY (OR) when at least one condition may match.
Actions
- Add destinations adds matched destinations to the normal route.
- Replace form destinations replaces the normal destinations for the affected channel/rule behavior.
Priority and Stop processing
Rules support priority and an optional Stop processing control. Higher-priority rules are evaluated first for stopping behavior. Use priorities deliberately when rules overlap.
If no applicable advanced rule matches, normal Form Routes/default destination behavior remains available as fallback.
10. Messages and Templates
FormCourier builds readable notifications from submitted form fields and supports message placeholders/templates. Discovered field labels are used where available, helping avoid technical field keys in normal messages.
Form-specific templates can override the default message template. Available placeholders depend on the discovered form fields and plugin context.
11. Delivery Logs and Retry
The Logs screen records delivery attempts by provider and destination. Details can include HTTP status, provider response, last error, retry state, next retry time, submission ID and submission timestamp.
Manual retry
Failed destinations can be retried manually. Retry is destination-aware so already successful channels do not need to be sent again.
Automatic retry
Temporary failures such as network errors, rate limits and provider 5xx responses can be scheduled for automatic retry. Configuration/permission failures are not automatically retried as if they were temporary network failures.
The automatic retry sequence uses delays of approximately 1 minute, 5 minutes and 15 minutes, while provider retry guidance can require a longer delay.
Filtering and CSV
Logs can be filtered and exported to CSV. Version 1.10.0 includes spreadsheet formula-injection hardening for CSV export.
12. WP-Cron
Automatic retries and optional log cleanup depend on WordPress scheduled events. If your site disables normal WP-Cron, configure a real server cron to trigger WordPress cron processing.
An optional cleanup setting can delete logs older than 30 days.
13. Site Migration and Encryption
Provider secrets are stored encrypted. Version 1.10.0 uses authenticated AES-256-GCM for newly stored secrets and keeps compatibility with previously encrypted plugin credentials.
Never send access tokens, webhook secrets, App Secrets, database passwords or WordPress salts in public support requests.
14. Localization
Version 1.10.0 includes translation files for:
- Russian (ru_RU)
- Ukrainian (uk)
- German (de_DE)
- Polish (pl_PL)
- Italian (it_IT)
The plugin text domain is formcourier-notifications-pro. User-created destination names and third-party product/brand names are not translated.
15. Uninstall and Data Retention
By default, uninstalling the plugin does not delete all saved plugin data. If you want settings and logs removed during uninstall, enable Delete plugin settings and logs when uninstalled before uninstalling.
The uninstall process clears scheduled FormCourier retry/cleanup events. When the delete-data option is enabled, plugin settings, logs, known forms and known fields are removed.
16. Troubleshooting
| Problem | What to check |
|---|---|
| Telegram test fails | Bot token, Chat ID, bot membership/permissions and provider response in Logs. |
| Slack test fails | Incoming Webhook URL, Slack app/webhook status and HTTP response. |
| WhatsApp API accepts but message is not delivered | Delivery webhook status, recipient eligibility, template approval/language, conversation window and Meta error details. |
| No WhatsApp delivery statuses | Webhook verification, Meta App Secret, callback signature and WABA app subscription. |
| Automatic retry never runs | Confirm WP-Cron is operating or a server cron is configured. |
| Credentials stopped working after migration | If WordPress salts changed, re-enter encrypted provider credentials. |
| Form is missing | Confirm the corresponding form builder is active and the form exists; reload the FormCourier settings/discovery screen. |
17. Security Notes
- Keep all provider credentials private.
- Use HTTPS on production WordPress and webhook endpoints.
- Give Meta/Telegram/Slack credentials only the access required for their purpose.
- Rotate credentials immediately if they are exposed publicly.
- Keep WordPress, the form builder and FormCourier updated.
18. Support and Author
Author: Den Slav
Product website: https://formcourier.site/formcourier-notifications-pro/
For marketplace purchase support, use the support/contact tools associated with the product listing. When reporting a problem, include the WordPress version, PHP version, form builder, notification channel, relevant non-secret log/error text, and steps to reproduce. Never include access tokens or passwords.
19. Changelog
1.10.0
- Added WhatsApp Cloud API destinations, normal Form Routes and Advanced Routing support.
- Added approved-template delivery alongside free-form WhatsApp messages.
- Added signed WhatsApp webhook handling and sent/delivered/read/failed statuses.
- Added WABA subscription and migration diagnostics.
- Fixed approved-template BODY parameter normalization for real submissions.
- Improved Telegram dashboard readiness and added WhatsApp readiness/quick action.
- Added Russian, Ukrainian, German, Polish and Italian localization.
- Hardened CSV export against spreadsheet formula injection.
- Added authenticated AES-256-GCM secret encryption while retaining compatibility with existing encrypted credentials.
Earlier version history is included in the WordPress plugin's readme.txt.