Title: Pommy AI
Author: pommyapp
Published: <strong>August 26, 2026</strong>
Last modified: August 26, 2026

---

Search plugins

![](https://ps.w.org/pommy-ai/assets/banner-772x250.png?rev=3666818)

![](https://ps.w.org/pommy-ai/assets/icon-256x256.png?rev=3666818)

# Pommy AI

 By [pommyapp](https://profiles.wordpress.org/pommyapp/)

[Download](https://downloads.wordpress.org/plugin/pommy-ai.1.4.0.zip)

 * [Details](https://wordpress.org/plugins/pommy-ai/#description)
 * [Reviews](https://wordpress.org/plugins/pommy-ai/#reviews)
 *  [Installation](https://wordpress.org/plugins/pommy-ai/#installation)
 * [Development](https://wordpress.org/plugins/pommy-ai/#developers)

 [Support](https://wordpress.org/support/plugin/pommy-ai/)

## Description

Pommy AI connects your site to Pommy (https://pommy.ai), a hosted AI customer-support
chat service. **A Pommy account is required**: this plugin is a client for that 
service and does nothing on its own. Pommy offers free and paid plans — see https://
pommy.ai for current plans and pricing.

Install the plugin, paste the Project ID from your Pommy dashboard into **Settings
Pommy AI**, and the chat launcher appears in the corner of your site.

Read the **External services** section below before you install. It lists exactly
what is sent to Pommy, when, and what is stored — including data collected from 
visitors who never open the chat.

**Why a plugin instead of pasting code into your theme**

 * Works on block themes (the default since WordPress 5.9), which have no `header.
   php` file.
 * Works on managed hosts where the Theme File Editor is disabled via `DISALLOW_FILE_EDIT`.
 * Survives theme updates — no theme file is modified, so nothing gets overwritten.

**How it works**

The plugin registers a small loader script through the WordPress script API (`wp_enqueue_script`),
printed in the site footer. The loader creates a cross-origin iframe that hosts 
the chat interface on Pommy’s own domain, so the widget’s code and storage stay 
separate from your site. The iframe is granted microphone permission, for the chat’s
optional voice input, and clipboard access so a visitor can copy a reply.

No chat content is stored in your WordPress database, and your server makes no request
to Pommy on its own — but the visitor’s browser does, on every page view. See **
External services**.

**What the plugin stores in WordPress**

Four options in your WordPress database:

 * `pommy_ai_project_id` — your Pommy Project ID.
 * `pommy_ai_api_url` — the Pommy API endpoint (defaults to `https://api.pommy.ai`).
 * `pommy_ai_hide_on_checkout` — whether the launcher is hidden on the WooCommerce
   checkout page. On by default.
 * `pommy_ai_test_result` — the outcome of the last “Test connection” check, or 
   the reason a Project ID was refused. Cleared whenever the settings are saved,
   because an old verdict describes old settings.

Saving the settings screen writes these whether or not a Project ID is filled in.
All four are deleted when you delete the plugin, along with the options used by 
the plugin’s earlier “Pommy Chat” releases.

### External services

This plugin connects your site to Pommy (https://pommy.ai), the chat service that
powers the widget. Without a Pommy account and a Project ID the plugin sends nothing.

**1. The chat widget, running in your visitor’s browser**

Once a Project ID is saved, every front-end page loads the widget from the Pommy
API host you configured (by default `https://api.pommy.ai`). From then on the widget
talks to Pommy directly, from the visitor’s browser rather than from your server.

_Sent on every page view, before the visitor interacts with anything:_ your Project
ID, the page URL and the referring URL, and — inherent to any request their browser
makes — the visitor’s IP address and user-agent string. Pommy resolves the IP to
a country and city and derives browser, operating system and device type from the
user agent, and keeps this as a visitor record whether or not the visitor ever opens
the chat. The widget repeats this roughly every 30 seconds while the page is open,
and holds a WebSocket connection open to Pommy for the same period. It also fetches
the widget’s configuration on load, and its interface translations when the visitor’s
language needs them.

_Sent only if the visitor uses the chat:_ the messages they write, and any contact
details they choose to type in, for example a name or an email address.

_Stored in the visitor’s browser:_ a visitor identifier and the most recent messages
of the conversation, in local storage on Pommy’s domain rather than yours, so the
chat survives a page change.

_Not sent by the plugin:_ your WordPress user accounts, your posts, or your WooCommerce
order and customer records. The plugin reads only its own settings and, on the settings
screen, the current administrator’s capabilities.

**2. Setup check, sent from your server**

When an administrator presses “Test connection” on the plugin’s settings screen,
WordPress makes one request from your server to `POST {API URL}/api/plugin/verify`.

_Sent:_ your Project ID, your site’s home URL, and the plugin version.
 _When:_ 
only when that button is pressed. Your server contacts Pommy at no other time. _Returned:_
whether the project exists, whether the domain is verified, the project’s name, 
and the address of the Pommy API that answered — so a site pointed at the wrong 
environment names it rather than failing silently.

Pommy’s terms of service: https://pommy.ai/terms
 Pommy’s privacy policy: https://
pommy.ai/privacy

## Screenshots

[⌊The settings screen. Paste your Project ID and press Test connection: the plugin
asks Pommy whether the ID and API address really work for this site, and reports
what it actually reached. WooCommerce stores also get a switch that keeps the launcher
off the checkout page.⌉⌊The settings screen. Paste your Project ID and press Test
connection: the plugin asks Pommy whether the ID and API address really work for
this site, and reports what it actually reached. WooCommerce stores also get a switch
that keeps the launcher off the checkout page.⌉[

The settings screen. Paste your Project ID and press Test connection: the plugin
asks Pommy whether the ID and API address really work for this site, and reports
what it actually reached. WooCommerce stores also get a switch that keeps the launcher
off the checkout page.

[⌊The chat widget on a live site.⌉⌊The chat widget on a live site.⌉[

The chat widget on a live site.

## Installation

 1. Create a Pommy account at https://pommy.ai, then open **Integrations  WordPress**
    in the dashboard and copy your Project ID.
 2. In WordPress admin, go to **Plugins  Add New**, search for **Pommy AI**, click **
    Install Now**, then **Activate**.
 3. Go to **Settings  Pommy AI** and paste the Project ID. If the dashboard showed 
    you an API address other than `https://api.pommy.ai`, paste that into the **API
    URL** field too. Click **Save Changes**.
 4. Click **Test connection**. It asks Pommy whether this Project ID and API address
    really work for this site, and names what it reached.
 5. Visit your site — the chat launcher appears in the bottom corner.

## FAQ

### Where do I find my Project ID?

In the Pommy dashboard, under Integrations  WordPress. It also appears inside the
embed snippet on the Widgets page, as the value of `projectId`. It is a UUID — it
looks like `123e4567-e89b-12d3-a456-426614174000`.

### My theme is a block theme. Does this work?

Yes. The plugin enqueues its loader through the WordPress script API, which works
on every standards-compliant theme — block themes included. It never touches `header.
php`.

### Does the widget appear on the WooCommerce checkout page?

No, not by default. On a phone the launcher lands in the same corner as the order
button, so the plugin keeps it off that page. Untick **Hide the chat launcher on
the checkout page** in Settings  Pommy AI if you want live help during payment.

The widget also stays off feeds, AMP pages, and the editing canvases of Elementor,
Divi, Beaver Builder, WPBakery, Brizy and Oxygen.

### How do I hide the widget on specific pages?

Use the `pommy_ai_enabled` filter from your child theme’s `functions.php`:

    ```
    add_filter( 'pommy_ai_enabled', function ( $enabled ) { return is_page( 'pricing' ) ? false : $enabled; } );
    ```

### What filters does the plugin provide?

 * `pommy_ai_enabled` — boolean, default true. Return false to keep the widget off
   the current request.
 * `pommy_ai_skip_contexts` — boolean, always false when it runs. Return true to
   add a skip condition of your own. It runs after the built-in skips, so it cannot
   re-enable a page the plugin already skips.
 * `pommy_ai_loader_attributes` — array of attribute name => value placed on the
   loader `<script>` tag. Pass true for a boolean attribute. Only loading attributes
   and `data-*` names are honoured.

### Does the plugin send data to Pommy from my server?

Only when you press “Test connection”. That sends one request containing your Project
ID, your site’s home URL and the plugin version. Nothing else leaves your server
at any time. The widget itself talks to Pommy from the visitor’s browser — see External
services for what that involves.

### I was using the “Pommy Chat” plugin. What do I do?

Activate Pommy AI; your Project ID and settings are carried over automatically. 
Then deactivate and delete the old Pommy Chat plugin — the folder name changed, 
so WordPress treats them as two plugins and would otherwise load two chat widgets
on your site.

### What happens when I delete the plugin?

All four plugin options are removed from the database, along with the options written
by the earlier “Pommy Chat” releases, on single sites and on every site of a multisite
network.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Pommy AI” is open source software. The following people have contributed to this
plugin.

Contributors

 *   [ pommyapp ](https://profiles.wordpress.org/pommyapp/)

[Translate “Pommy AI” into your language.](https://translate.wordpress.org/projects/wp-plugins/pommy-ai)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/pommy-ai/), check out
the [SVN repository](https://plugins.svn.wordpress.org/pommy-ai/), or subscribe 
to the [development log](https://plugins.trac.wordpress.org/log/pommy-ai/) by [RSS](https://plugins.trac.wordpress.org/log/pommy-ai/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.4.0

 * The plugin is now called Pommy AI, matching the service it connects to. Its settings
   screen moves to Settings  Pommy AI, and the filters are renamed to `pommy_ai_enabled`,`
   pommy_ai_skip_contexts` and `pommy_ai_loader_attributes`. Settings from the earlier“
   Pommy Chat” releases are carried over automatically; delete that plugin once 
   this one is active.
 * The External services section now describes everything the widget sends from 
   a visitor’s browser, including the data collected before a visitor opens the 
   chat.
 * The API URL field now accepts only pommy.ai addresses over HTTPS, and the setup
   check is sent through WordPress’ safe HTTP helper, so the field can no longer
   point your site’s script tag or your server at an arbitrary host. A site that
   needs a different endpoint can set `POMMY_AI_API_URL` in `wp-config.php`.
 * Saving the settings on a site without WooCommerce no longer switches off the 
   checkout protection for the store you install later.
 * A Project ID left over from an older version that is not in the right format 
   is now ignored rather than loaded, and the settings screen says the widget is
   not live instead of implying it is.
 * The connection result is stored as a code rather than a finished sentence, so
   the message follows the language of whoever reads the screen, and it now says
   when the check ran.

#### 1.3.5

 * The readme now matches the plugin: it describes how the widget script is loaded,
   lists all four stored options, and no longer contradicts itself about requests
   sent from your server.

#### 1.3.4

 * The widget loader is registered and enqueued through the WordPress script API,
   and the async and cache-optimizer attributes are added through the `script_loader_tag`
   filter.

#### 1.3.3

 * Removed the Plugin URI header: it pointed at the same address as Author URI, 
   and no page about this plugin alone exists yet.

#### 1.3.2

 * Housekeeping before the plugin directory submission.

#### 1.3.1

 * Translations now come from WordPress itself instead of a bundled folder that 
   shipped empty.

#### 1.3.0

 * Documents the external service the widget talks to, what it sends and when — 
   required reading before you install anything that phones home.
 * Verified with WooCommerce: the launcher stays off the block checkout and returns
   when the setting is switched off.

#### 1.2.0

 * New “Test connection” button: asks Pommy whether this Project ID and API address
   really work for this site, and says which of the three things is wrong when they
   do not.
 * The settings screen no longer claims the widget is active just because a Project
   ID is filled in — it reports what was actually checked.
 * A Project ID that is not in the right format is refused with an explanation instead
   of being saved into silence.

#### 1.1.0

 * WooCommerce: the chat launcher stays off the checkout page by default, where 
   it could sit on top of the order button on a phone. Switchable in Settings.
 * The loader now carries the opt-out attributes that caching and optimization plugins
   look for, so tools such as Rocket Loader, Autoptimize, WP Rocket, LiteSpeed and
   Perfmatters leave it alone rather than deferring or combining it.
 * The widget no longer prints inside page-builder editing canvases or on AMP requests.

#### 1.0.0

 * Initial release: settings page under Settings, front-end widget injection via`
   wp_footer`, an enable/disable filter, full uninstall cleanup.

## Meta

 *  Version **1.4.0**
 *  Last updated **3 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.9 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.2 or higher **
 * Tags
 * [AI Chatbot](https://wordpress.org/plugins/tags/ai-chatbot/)[chat](https://wordpress.org/plugins/tags/chat/)
   [chatbot](https://wordpress.org/plugins/tags/chatbot/)[customer support](https://wordpress.org/plugins/tags/customer-support/)
   [helpdesk](https://wordpress.org/plugins/tags/helpdesk/)
 *  [Advanced View](https://wordpress.org/plugins/pommy-ai/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/pommy-ai/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/pommy-ai/reviews/)

## Contributors

 *   [ pommyapp ](https://profiles.wordpress.org/pommyapp/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/pommy-ai/)