Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Integrators: start here

The landing page for system integrators and integration developers who connect Exponential with CRM, ERP, PIM, DAM, identity providers, search, mail, payment, analytics and other content systems. What integration…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/integrators/integrators-start-here.md

On this page

Integrators: start here

This section of the help is for system integrators: integration developers, solution architects and the integration companies that connect Exponential with other systems. Typical projects connect a CRM, an ERP or a product information system (PIM), a digital asset manager (DAM), an identity provider, a search server, a mail or newsletter service, a payment provider, an analytics tool, or another content management system that is being replaced or kept alongside.

It answers four questions: which integration surfaces Exponential actually has (and which it does not), which one fits a given job, how to build an integration that survives imports, failures and upgrades, and how to run an integration project from discovery to handover.

Note

Every technical statement in this section names the file, setting, class or command it relies on, and was checked against the code of Exponential 6.0.15 and the extensions the root composer.json requires. Where something is not provided, the page says so plainly. Examples use example.com, "your company" and placeholder identifiers; no page describes a real customer or partner.

Contents

  1. Integrating Exponential in one minute
  2. What this section covers, and what it does not
  3. Map of the integrator pages
  4. Reading paths by role
  5. Your first week on an integration project
  6. Who to ask

Integrating Exponential in one minute

  • Two HTTP APIs ship with the product. The REST content API of the ezprestapi extension answers below /api/ezp/v1/ and /api/ezp/v2/ (reads at both versions, create and delete at v2), and the expservices extension offers about a thousand named services as JSON under /ezjscore/call/exp<domain>::<method> (REST API for integrators, Remote services with expservices).
  • Three kinds of credentials. OAuth 2.0 applications registered at Setup > oAuth admin, personal API keys (expk_...) for one program of one user, and expservices tokens (expt_...). None of them can do more than the user behind it (Choosing credentials).
  • The PHP API is the strongest surface. Imports that run on the server use eZContentFunctions::createAndPublishObject() and updateAndPublishObject() with a stable remote_id, so the publish operation, workflows, caches and the search index all stay in step (Idempotent imports keyed by remote_id).
  • Hooks for "something happened". Workflows on triggers (for example content / publish / after), event listeners of ezpEvent, notification handlers, and the audit trail's signed webhook sink (Workflows and triggers as hooks, Outgoing webhooks from the audit trail).
  • Feeds, packages and files. RSS 1.0, RSS 2.0, Atom and OPML exports, RSS imports by cronjob, .ezpkg packages, CSV import and export, and scheduled exchange to SFTP, S3, WebDAV or an HTTP endpoint with xrowextract.
  • Identity. Login handlers (standard, LDAP, textfile, your own), single sign-on handlers, and social login through the sevenx_authentication_2fa extension (Login handlers, Single sign-on and social login).
  • Everything runs as an extension. An integration is an extension: settings, classes, cronjob parts, console commands, workflow events. It can be versioned, tested, released and contributed back (Building an integration as an extension).
  • What is not there. No OpenAPI description of the content API, no XML-RPC, no SAML, no message broker connector in the kernel, and no content update over REST (GraphQL has one). Plan these as custom work (Integration surfaces at a glance).

What this section covers, and what it does not

Covered hereRead elsewhere
Choosing and using each integration surface for a jobWriting extensions in general: Extension development: the book
Integration patterns: push and pull, batch and real time, idempotency, mappingBuilding applications on Exponential: App creators: start here
Security, testing, monitoring and upgrades of integrationsHosting and operating servers: Hosting companies: start here
Running an integration project: estimates, statements of work, handoverThe partner program itself: Partners: start here
Worksheets, checklists, FAQ and glossary for integratorsWorking on the code with Git: Develop with Git

Two sibling sections are written for neighboring roles: Resellers: start here for companies that sell Exponential and services around it, and Bundlers: start here for companies that ship Exponential inside a product or a distribution.

Map of the integrator pages

Reading paths by role

The whole section in one order is on Integrators' reading path.

Your first week on an integration project

DayDo thisPage
1Fill in the discovery worksheet with the customer: systems, data, direction, volume, timingIntegration discovery worksheet
1Check which surfaces the installation has active (ActiveExtensions, rest.ini, soap.ini, webdav.ini)Integration surfaces at a glance
2Pick a surface and a credential per data flow, and write them downChoosing an integration surface, Choosing credentials
2Map each external record to a content class and a remote_id schemeMapping classes to external data
3Set up a development installation from Git and a service account with a narrow roleDevelop with Git, Service accounts and roles
4Build a first import or call end to end, with a dry runWriting an import
5Write the interface specification and agree on error handling and monitoringInterface specification template, Monitoring

Who to ask

QuestionWhere
Technical questions about the APIs and the kernelThe forums https://share.exponential.earth/forums and Telegram https://t.me/exponentialcms
Paid support, development or a review of your integration by 7xhttps://se7enx.com/contact
The partner program, levels, referralsThe partner team: [email protected], or the form at https://exponential.earth/partner/contact-us
A security problem you found while integrating[email protected], privately, never in a public issue
A bug or a missing feature in an extensionThe extension's repository on https://github.com/se7enxweb (Writing good issues)

Become an Exponential Partner

Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x