Changelog
What changed in the API, the MCP connector and this support portal.
2026-06-28 — Campaigns live in the connector ✅
- Campaigns are now reachable. The full
/campaignsfamily works end-to-end through the MCP connector (esperto_list_campaigns→ JSendstatus: OK). New tools cover listing, creating, updating, members, and invitations/reminders. See MCP Tools. - Scope must be requested, not just enabled. With
client_credentialsthe token only carries the scopes named in the request. A scope that's enabled on the client but missing from the request returns 403 on those endpoints. Add every family you call to the requested scope string. See Authentication and FAQ & Troubleshooting. - Campaign data model documented from live data, including how a campaign's
variantandlanguagereference a report-variant and its supported languages. See Endpoints and the new Campaigns guide. - ⚠️
inviteandremindsend real emails. Only run them against a campaign whose members are addresses you control.
2026-06-25
- Group creation works: added
esperto_create_group(POST /groups) to the connector. Confirms group-write access. - Add-member-to-group resolved: the earlier 404 was a singular/plural route
typo, not a permission issue. Both
POST /groups/{id}/member/{memberid}(legacy) and…/members/{memberid}(plural) are now registered. - Dupecheck best practice: always dupecheck before creating — the API rejects
duplicate member emails and group names/aliases. Added connector tools
esperto_members_dupecheckandesperto_groups_dupecheck. See FAQ & Troubleshooting.
2026-06-24 — MCP connector live end-to-end ✅
- The connector now authenticates and returns data (
esperto_list_groups→ JSendstatus: OK). The fix had three parts: call/auth/access_token(not/auth/authorize); send the body form-urlencoded (not JSON); includegrant_type=client_credentials. - Correction:
client_credentialsis supported — it's the grant headless clients use. See Authentication. - Auth bug fixed: a stale
.htaccesson the host was stripping theAuthorizationheader before it reached PHP, so bearer tokens read as empty. Forwarding rules added; bearer auth works again. - Documented token rules (1h lifetime, refresh blocked) and the JSend response
contract (HTTP 200 always; read
status, not the HTTP code).
2026-06-02
- Knowledge base initialised. Captured the first customer onboarding: base URL,
enabled
/members&/groupsscopes (22 total), full endpoint list, and the OAuth2 auth flow.