Webhook Chat releases
WordPress chat plugin powered by n8n webhooks
by Your Name · github.com/fphxgallery/n8n-webhook-chat · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/fphxgallery/n8n-webhook-chat/archive/refs/heads/main.zipA WordPress plugin that embeds a fully customizable chat widget connected to any webhook endpoint — built for n8n AI agent workflows, but compatible with any HTTP backend.
Features
- Floating launcher — a corner button that opens a popup chat window
- Inline iframe mode — embed a self-contained chat window anywhere via shortcode
- Connects to any webhook — point it at an n8n webhook, a custom API, or any HTTP endpoint
- Session IDs — auto-generated per-conversation session IDs, passable as
{session_id}in request body fields - Dot-notation response parsing — read nested JSON replies like
data.message.text - Markdown & URL linkification — bot replies support
[label](url)links and bare URLs - Typing indicator — animated dots while waiting for a response
- Per-page visibility rules — restrict the widget to specific URL paths
- Fully styled from the admin panel — colors, fonts, size, position, avatar, and more
- No external dependencies — no npm, no build step, vanilla JS + PHP
Requirements
- WordPress 5.8+
- PHP 7.4+
- An HTTP webhook endpoint (e.g. an n8n workflow with a Webhook node)
Installation
- Clone or download this repo into
wp-content/plugins/webhook-chat/ - Activate the plugin in Plugins → Installed Plugins
- Go to Settings → Webhook Chat and enter your webhook URL
n8n Setup
- In n8n, create a new workflow and add a Webhook node
- Set the method to POST and note the webhook URL
- Add your AI agent logic (e.g. OpenAI, Anthropic, or a custom chain)
- Return a JSON response with a reply field, e.g.:
{ "reply": "Hello! How can I help you?" } - Paste the webhook URL into Settings → Webhook Chat → Webhook URL
n8n Session Tracking
To maintain conversation context across messages, pass the session ID through to your n8n workflow. In Extra Body Fields, add:
action=sendMessage
sessionId={session_id}
Then use sessionId in your n8n workflow to look up or store conversation history.
Configuration
Navigate to Settings → Webhook Chat in the WordPress admin. Settings are organized into four tabs:
Webhook
| Setting | Default | Description |
|---|---|---|
| Webhook URL | (empty) | The endpoint that receives chat messages |
| HTTP Method | POST |
POST or GET |
| Timeout | 60 |
Seconds to wait for a response (10–300) |
| Extra Headers | (empty) | One per line: Header-Name: value (e.g. Authorization: Bearer token123) |
| Request Field | chatInput |
JSON key used to send the user's message |
| Response Field | reply |
JSON key to read the bot reply from. Supports dot notation: data.text |
| Extra Body Fields | (empty) | Additional key=value pairs sent with every request. Use {session_id} as a placeholder |
Appearance
Colors (primary, user bubble, bot bubble), font size, border radius, window width/height, and position (bottom-right, bottom-left, bottom-center).
Content
Chat title, subtitle, welcome message, input placeholder, send button label, launcher icon (chat, support, or bot), optional launcher label, and bot avatar URL.
Behaviour
| Setting | Default | Description |
|---|---|---|
| Display Mode | launcher |
launcher = floating button; iframe = always-open embed via shortcode |
| Iframe Height | 600 |
Height in px when using iframe mode |
| Open on Page Load | off | Auto-open the chat window on arrival (launcher mode only) |
| Show Timestamps | on | Show time below each message |
| Show Avatar | on | Show bot avatar beside messages |
| Typing Indicator | on | Show animated dots while waiting for a response |
| Restrict to Pages | (empty) | One URL path per line (e.g. /contact/). Leave blank to show on all pages |
Shortcode
Use [webhook_chat] to embed the chat widget inline on any page or post.
In iframe display mode, this renders a self-contained `
Releases
2 releases.
These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.