canonical: https://jentic.com/apis/force24.co.uk/force24

# Force24 API

Jentic publishes the only available OpenAPI specification for Force24 API, keeping it validated and agent-ready. Force24 is a UK marketing automation platform that combines email, SMS, and behavioural tracking. The API exposes endpoints for managing contacts, sending email and SMS campaigns, maintaining marketing lists and list memberships, reading web activity tracking data, and adjusting subscription preferences. Authentication is OAuth 2.0.

## For AI agents

Manage contacts, send email and SMS campaigns, read web activity, and adjust subscription preferences across Force24 marketing automation from agent code.

## Scope

Does not handle ad campaigns, CRM deal management, or web analytics dashboards - use for Force24 contacts, email and SMS campaigns, marketing lists, and subscription preferences only.

## Capabilities

- Create, update, find, and erase contacts in the Force24 database
- Look up recently changed and deleted contacts for incremental sync
- Pull email campaign sent items, opens, clicks, unsubscribes, and bounces
- Send SMS campaigns through the SMS endpoints
- Add and remove contacts from marketing lists
- Read web activity tracking events for engagement scoring
- Update subscription preferences to honour opt-outs and consent state

## Use cases

### CRM-to-Force24 Contact Sync

Mirror your CRM's contacts into Force24 by calling `/api/contacts/upsert` on every change, then read `/api/contacts/recents` and `/api/contacts/deleted` on a schedule for reverse sync. This keeps marketing automation aligned with the source-of-truth contact data without dual entry. Initial setup takes a few days including field mapping and consent handling.

Example prompt: Upsert a contact via `/api/contacts/upsert` with email 'lead@example.com' and the latest first name, last name, and lead source from the CRM.

### Campaign Engagement Reporting

Pull engagement events from `/api/email/opens`, `/api/email/clicks`, `/api/email/unsubscribes`, and `/api/email/bounces` to feed an attribution dashboard or a lead-scoring model. Each endpoint returns event records keyed by campaign and contact, ready to join with your warehouse contact records. Useful for marketing ops teams that want raw event-level data outside the Force24 UI.

Example prompt: List email opens via `/api/email/opens` for campaign ID '4521' since yesterday and return the count of unique contacts who opened.

### List Membership Management

Add and remove contacts from marketing lists through the marketing-list and marketing-list-contacts endpoints to drive segmentation. Suits agents that respond to events such as 'webinar registered' or 'lead became MQL' by moving the contact into the right nurture list. Each list supports dynamic membership updates without re-uploading the whole audience.

Example prompt: Add the contact with GUID '7f2b...' to the Force24 marketing list named 'Spring Webinar Registrants'.

### Subscription Preference Updates

Use the subscription-preferences endpoints to record opt-outs, consent updates, and channel preferences as customers change their minds. Critical for UK GDPR and PECR compliance - the API lets your downstream systems push preference changes back into Force24 immediately. Each preference is keyed to the contact and a channel.

Example prompt: Update the subscription preference for contact GUID '9c10...' to opt out of SMS while keeping email opted in.

### AI Agent Marketing Integration via Jentic

Agents use Jentic's intent search to find Force24 operations, load the schema for contact upsert or campaign reporting endpoints, and execute calls under a scoped OAuth credential. This is the recommended pattern for AI assistants embedded in CRMs that need to push or pull marketing data without a custom backend. Jentic keeps the OAuth tokens isolated.

Example prompt: Use Jentic to search 'upsert a Force24 contact', load the `/api/contacts/upsert` schema, and synchronise the contact record the user named with the latest CRM values.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/api/contacts/upsert` | Upsert a contact |
| POST | `/api/contacts/find` | Find a contact by email or other field |
| GET | `/api/contacts/recents` | List recently changed contacts |
| GET | `/api/contacts/deleted` | List recently deleted contacts |
| GET | `/api/email/opens` | Read email open events |
| GET | `/api/email/clicks` | Read email click events |
| GET | `/api/email/bounces` | Read email bounce events |
| GET | `/api/email/unsubscribes` | Read email unsubscribe events |

## Key resources

- **Contacts** — Create, update, find, and delete contacts; list recents and deletions.
- **Email** — Read sent items, opens, clicks, unsubscribes, and bounces.
- **SMS** — Send and read SMS campaign data.
- **Marketing Lists** — Manage marketing lists used for segmentation.
- **Marketing Lists Contacts** — Add and remove contacts from marketing lists.
- **Schema** — Inspect contact schema fields.
- **Subscription Preferences** — Manage opt-in and opt-out preferences.
- **Web Activity** — Read tracked web activity events for contacts.

## Why Jentic

- **Setup:** Wiring the Force24 API by hand means running its OAuth 2.0 client-credentials flow, refreshing the access token between calls yourself, and building your own retry and error handling across contact and campaign endpoints. Through Jentic you install once, import Force24 from the API Directory, store the client credentials once, and your agent calls it.
- **Permission scoping:** Force24 carries the contact and campaign targets in the request body rather than the URL path, so scoping is operations-only: you limit the agent to the operations it needs, such as upserting or finding a contact, and leave out the email and SMS reporting endpoints unless you add them. Every operation the agent can run is one you chose.
- **Credential handling:** Your Force24 OAuth client credentials are stored once, encrypted, by your own Jentic One instance, which handles the token refresh and injects the access token at execution time. The client secret never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'upsert a Force24 contact', and Jentic returns the `/api/contacts/upsert` operation with its input schema so the agent supplies the right contact fields without browsing the reference docs.

## Related APIs

- **Klaviyo API** — Email and SMS marketing platform with strong e-commerce focus.
- **Mailchimp API** — Mainstream email marketing platform with global reach.
- **HubSpot Contacts API** — CRM contact source-of-truth that pairs with Force24 for marketing execution.

## FAQ

### Why is there no official OpenAPI spec for Force24 API?

Force24 does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Force24 API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Force24 API use?

The Force24 API uses OAuth 2.0. Generate client credentials in the Force24 portal and exchange them for an access token. Jentic stores the client credentials encrypted in your Jentic One instance and refreshes tokens automatically.

### Can I sync contacts in both directions with the Force24 API?

Yes. Push changes via `/api/contacts/upsert` and pull recent changes via `/api/contacts/recents` and deletions via `/api/contacts/deleted.` Together these endpoints support a bidirectional sync between Force24 and an external CRM.

### What are the rate limits for the Force24 API?

The OpenAPI spec does not declare explicit rate limits. Force24 enforces account-level throughput in production - back off on 429 responses and stagger bulk contact uploads.

### How do I pull email engagement events through Jentic?

Search Jentic for 'list Force24 email opens', load the `/api/email/opens` schema, and execute with the campaign and date range. Repeat with `/api/email/clicks`, `/api/email/bounces`, and `/api/email/unsubscribes` for the full engagement picture.

### Does the Force24 API support GDPR-style consent updates?

Yes, the subscription-preferences endpoints record opt-in and opt-out state per contact and channel. Use these to push consent changes from a preference centre or unsubscribe handler back into Force24.

### Can I limit what my agent is allowed to do with the Force24 API?

Yes. Because you run Jentic One yourself, your own rules decide which Force24 operations and credentials the agent may use. Force24 passes the contact and campaign targets in the request body rather than the URL, so scoping is operations-only: you allow just the operations the agent needs, such as `/api/contacts/upsert` or `/api/contacts/find`, and leave out the email and SMS reporting endpoints unless you add them. Every operation the agent can call is one you chose.
