Appearance
FluentCRM
PackEdge adds your customers to your own FluentCRM (on your WordPress site) and, when something happens to them (a purchase, a renewal, an expiry, a cancellation), adds or removes the FluentCRM lists and tags you chose for that event. FluentCRM's own automations then take it from there.
FluentCRM sync is available on products on the Pro and Business plans.
The integration has two levels:
- Organization: an on/off switch and the WordPress sites PackEdge may talk to. This is where connections and credentials live, and nothing else.
- Product: whether a product syncs, to which site, and which lists and tags each event adds or removes.
Organization settings
Open Integrations → FluentCRM in the console's organization menu. You need the manage organization permission.
The switch
| State | What happens |
|---|---|
| On | Changes to licenses, subscriptions, payments and customers are queued and sent as they happen. |
| Off | Nothing is queued or sent to any site. Updates that were still waiting are dropped. Sites stay connected and health-checked. |
Turning the switch back on sends only changes made from then on. Nothing that happened while it was off is replayed. To bring existing data across, run Resync all on a product. A resync creates any missing contacts and never runs event mappings for past activity, so your automations don't email people about old events.
Connecting a site
Each site needs:
| Field | Notes |
|---|---|
| Name | Your label for the site. |
| Site URL | HTTPS only; the WordPress REST API must be reachable. |
| WordPress username | A user who can manage FluentCRM contacts. |
| Application password | Created in WordPress under Users → Profile → Application Passwords. Stored encrypted; never shown again. |
PackEdge tests the credentials before saving. An organization can connect several sites. Editing a site's URL, username or password re-tests the new values before replacing the working ones.
Health (pulse)
PackEdge checks every connected site about every 15 minutes while the switch is on, and whenever you click Check now. Each site shows:
- Connected: the site answered, the credentials work and FluentCRM responded. The response time and check time are shown.
- Unhealthy: with the reason, for example Authentication failed (fix the username or application password), FluentCRM's REST API was not found (is FluentCRM active?), or Could not reach the site over HTTPS.
Updates for an unhealthy site are retried with backoff; the site catches up once it passes a check.
Disconnecting a site
Disconnecting removes the stored credentials, the product syncs pointed at the site and their queued updates. You type the site's name to confirm. Contacts and tags already in FluentCRM are left as they are.
Product settings
Open the product, then Integrations → FluentCRM. The page appears only while FluentCRM is switched on for the organization and the product is on a paid plan. If a product moves back to Free, its sync stops; updates wait and are sent once it is on a paid plan again.
A product syncs to one site: search for one of the connected sites (each shows its health), map events to lists and tags, and decide whether to send the product's existing contacts now or only changes from now on. To move a product to another site, stop syncing it first.
Event mappings
The main table has one row per event. For each event, choose which FluentCRM lists the contact is added to and which tags they get. Each cell is a searchable multi-select. To also take contacts out of lists or tags, click Also remove from lists or tags: two more columns appear (they stay visible while any event removes something). For example:
| Event | Add to lists | Add tags | Remove from lists | Remove tags |
|---|---|---|---|---|
| New customer | AjaxPress, Newsletter | Free | — | Demo |
| First purchase | Customers | Pro | Free users | Free |
Every event has an on/off switch. Switch an event on to choose its lists and tags; while it is off its pickers are hidden and nothing happens on that event. Events you haven't mapped start off. Switching off a mapped event keeps its lists and tags, so switching it back on restores them.
Events PackEdge detects:
- Customer: New customer
- License: License created, renewed, expired, revoked or suspended, access regained
- Payment: First purchase, repeat purchase, payment refunded
- Subscription: Plan changed, trial started, trial converted to paid, past due, cancellation scheduled, canceled, paused, resumed
A mapping runs once per event. Events are worked out by comparing what the customer was at the last sync with what they are now, so a delivery that fails and is retried doesn't run a mapping twice. Past activity never runs one: sending existing contacts, a resync, or a customer who was already there before this product started syncing doesn't count as a New customer. Several events can fire together: a purchase that creates a customer fires New customer, License created and First purchase.
Each row shows how many times it has run. A tag or list an event adds stays until another event removes it; PackEdge never touches a contact's other tags or lists. A list or tag can't be both added and removed in the same row.
Suggest mappings
Suggest mappings proposes lists and tags for events that are still empty, based on your site's list and tag names (lists and tags named after another of your products are never suggested): for example a "Customers" list on First purchase, or a "Churned" tag on Subscription canceled. Suggested rows are marked with the reason for each. They are only a draft. Review or change them, then save; Undo suggestions puts the table back as it was. Rows you have already filled in are never overwritten.
On the Business plan, suggestions come from AI. Only the product name, its plan names, and the site's list and tag names are sent, never customer data. On other plans, or when AI is unavailable, suggestions come from matching list and tag names against each event's keywords.
Recent activity
The product page lists the latest deliveries. Each line names the events that happened to the contact and what PackEdge did: applied (the mapping ran), off (a mapping exists but is switched off) or not mapped. For example: Contact synchronized · New customer: applied, Plan changed: not mapped.
Contacts
A contact PackEdge creates is transactional: no marketing consent is implied. PackEdge never changes the subscription status of a contact that already exists, so it can't resubscribe someone who opted out.
Pausing
A product's sync can be paused on its own. Pausing works like the organization switch for that product alone: waiting updates are dropped, and resuming sends only new changes.
