=== ZA-ONE Notify for Contact Form 7 ===
Contributors: yuyatanaka
Tags: contact form 7, slack, discord, telegram, notifications
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.2
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Instantly send Contact Form 7 submissions to Slack, Discord or Telegram. Real-time, asynchronous, automatic retry, no code required.

== Description ==

**Stop missing leads from your contact form.** Email notifications get buried, filtered as spam, or noticed hours too late. ZA-ONE Notify pushes every Contact Form 7 submission straight to the chat tool your team already watches — **Slack, Discord, or Telegram** — the instant it arrives.

* **Real-time** — notifications are delivered in well under a second.
* **No impact on your form** — sending runs asynchronously, so visitors never wait.
* **Reliable** — if the first attempt fails, the plugin automatically retries in the background (up to two times with backoff).
* **Sends even when your site email fails** — if Contact Form 7 reports `mail_failed`, the notification still goes out, so a broken SMTP setup no longer means a silently lost lead.
* **No code** — paste a Webhook URL (or a bot token), pick your template, done.
* **Readable errors + test button** — a built-in test send tells you exactly what is wrong if a channel is not configured correctly (for example "Slack returned HTTP 404 — check that the Webhook URL is correct and still exists").
* **No account, no sign-up, no phone-home** — the plugin never contacts our servers. It only talks to the messaging service you configure yourself.

The free edition delivers to **one channel of your choice**. That is all most small sites need, and it works forever with no limits, no trial period and no license key.

= Customizable message template =

Build your own notification text using your form's field tags, for example `[your-name]`, `[your-email]`, `[your-message]`, plus the special tags `[_site_title]`, `[_date]` and `[_time]`. Unknown tags simply resolve to an empty string, so a template never breaks a notification.

= Privacy and data =

Submission content is sent **only** to the messaging service you configure, and only after you enter that service's credentials and select it as the active channel. The plugin does not create database tables and does not retain submission content on your site — the built-in delivery log stores status lines (channel, HTTP result, timestamp), not form field values. See the "External services" section below for exactly what is sent where.

= Want more? =

[ZA-ONE Notify Pro (the paid version)](https://zone-web.jp/cf7-notifier/en/) adds the safety net that businesses need:

* **Submission Inbox** — every entry is saved to your own site, so you never lose a lead even if email *and* a notification fail.
* **Delivery-failure alerts** with one-click resend.
* **Multiple channels at once**, plus **Microsoft Teams**, LINE and Chatwork.
* **Per-form routing** and per-channel templates, CSV export, and email support.

= Built by =

ZA-ONE builds and maintains WordPress sites and inquiry-handling automation for small businesses. If your inbox has grown past the point where a human can triage every enquiry by hand, we also build custom AI first-response systems for Contact Form 7 sites — see [zone-web.jp/ai](https://zone-web.jp/ai/).

== Installation ==

1. Make sure [Contact Form 7](https://wordpress.org/plugins/contact-form-7/) is installed and active.
2. Install ZA-ONE Notify from **Plugins → Add New**, or upload the ZIP.
3. Activate the plugin.
4. Go to **ZA-ONE Notify** in the admin menu.
5. Choose a channel, paste its Webhook URL (or Telegram bot token + chat ID), edit the template, and **Save**.
6. Click **Send test notification** to confirm it works.

== Frequently Asked Questions ==

= Which channels are supported in the free version? =

Slack, Discord and Telegram. You can configure all three and switch the active one at any time, but the free edition delivers to one channel at a time. Sending to several channels at once — plus Microsoft Teams, LINE and Chatwork — is available in the Pro version.

= Is there a trial period or a usage limit? =

No. The free edition is fully functional forever: unlimited forms, unlimited notifications, no license key, no registration.

= Do I need to write any code? =

No. For Slack and Discord you paste an Incoming Webhook URL. For Telegram you create a bot with @BotFather and enter the token and chat ID.

= Will it slow down my contact form? =

No. Delivery happens asynchronously after the form is submitted, so your visitors never wait for it.

= What happens if delivery fails? =

The plugin automatically retries in the background (up to two times, about a minute apart). The recent delivery log on the settings page shows what happened. Saved submissions, failure alerts and one-click resend are available in the Pro version.

= What happens if my site's email is broken? =

The notification is still sent. ZA-ONE Notify hooks the submission for both the `mail_sent` and `mail_failed` statuses, so a misconfigured SMTP setup does not silently swallow the lead.

= Does the plugin store my form submissions in the database? =

No. It creates no custom tables. Only a short rolling delivery log (last 30 entries: time, status, and a status message) is kept in a single WordPress option. While a failed delivery is waiting to be retried, the notification text is held temporarily in the scheduled WP-Cron event and discarded once the retry succeeds or gives up. Persistent storage of submission content is a Pro feature.

= Does the plugin send anything to the developer? =

No. There is no license check, no telemetry and no phone-home of any kind in the free edition. The only outbound requests are to the messaging service you configured.

= Does it work with the latest Contact Form 7? =

Yes. It hooks into the standard `wpcf7_submit` event and works with any standard CF7 form.

= I get more inquiries than we can triage by hand. Can this help? =

The Pro version's Submission Inbox gives you a searchable record of every enquiry with delivery status and CSV export. If you need enquiries automatically classified, routed and answered with a drafted first reply, that is a custom build rather than a plugin feature — ZA-ONE builds those; details at [zone-web.jp/ai](https://zone-web.jp/ai/).

== External services ==

This plugin sends your form submission data to the third-party messaging service **you choose and configure**. Nothing is sent until you enter that service's Webhook URL or bot token and select it as the active channel. The plugin contacts **only** the service you configure — it does not phone home or send data anywhere else, and it makes no outbound request at all until you configure a channel.

**What is sent:** the notification message produced by your own template. By default that is the site title, the date and time of the submission, and the Contact Form 7 field values you referenced in the template (typically name, email, subject and message). You control exactly which fields are included by editing the template.

**When it is sent:** once per Contact Form 7 submission, plus once each time you press the "Send test notification" button, plus up to two automatic retries if a delivery fails.

* **Slack** — the message is sent to the Slack Incoming Webhook URL you provide (`hooks.slack.com`). See the [Slack Privacy Policy](https://slack.com/trust/privacy/privacy-policy) and [Slack Terms of Service](https://slack.com/terms-of-service).
* **Discord** — the message is sent to the Discord Webhook URL you provide (`discord.com`). See the [Discord Privacy Policy](https://discord.com/privacy) and [Discord Terms of Service](https://discord.com/terms).
* **Telegram** — the message is sent to the Telegram Bot API (`api.telegram.org`) using the bot token and chat ID you provide. See the [Telegram Privacy Policy](https://telegram.org/privacy) and [Telegram Terms of Service](https://telegram.org/tos).

= 日本語 =

本プラグインは、フォーム送信内容を **利用者ご自身が設定した** サードパーティのメッセージングサービスに送信します。Webhook URL またはボットトークンを入力し、送信先チャンネルとして選択するまでは、いかなる外部通信も発生しません。送信先は設定したサービスのみで、開発元のサーバーへの通信（いわゆる phone home）や利用状況の収集は一切ありません。

送信される内容は、利用者が編集したテンプレートから生成された通知本文です（既定ではサイト名・送信日時・テンプレートで参照した Contact Form 7 のフィールド値）。送信タイミングは、フォーム送信時、テスト送信ボタン押下時、および送信失敗時の自動リトライ（最大 2 回）です。

* **Slack** — 設定した Slack Incoming Webhook URL（`hooks.slack.com`）宛。[プライバシーポリシー](https://slack.com/trust/privacy/privacy-policy) / [利用規約](https://slack.com/terms-of-service)
* **Discord** — 設定した Discord Webhook URL（`discord.com`）宛。[プライバシーポリシー](https://discord.com/privacy) / [利用規約](https://discord.com/terms)
* **Telegram** — 設定したボットトークンとチャット ID を用いて Telegram Bot API（`api.telegram.org`）宛。[プライバシーポリシー](https://telegram.org/privacy) / [利用規約](https://telegram.org/tos)

== Screenshots ==

1. Settings screen — choose a channel, enter credentials, and edit the message template.
2. A form submission delivered to Slack in real time.
3. The built-in test button and the recent delivery log.

== Changelog ==

= 1.0.2 =
* Tested with WordPress 7.1.
* Documentation: expanded the external-services disclosure (what data is sent, when, and to which endpoint) and added a Japanese summary.
* Documentation: new FAQ entries covering data storage, telemetry, and behaviour when the site's own email delivery fails.
* Added a plugin icon and banner for the WordPress.org listing.
* No functional changes.

= 1.0.1 =
* Added a bundled Japanese (ja) translation.
* The upgrade link now points to the Japanese site for Japanese locales.

= 1.0.0 =
* Initial release: real-time Contact Form 7 notifications to Telegram, Slack, or Discord, with asynchronous delivery, automatic retry, a customizable template, and a built-in test button.

== Upgrade Notice ==

= 1.0.2 =
Compatibility confirmed with WordPress 7.1. Documentation-only update — no functional changes.
