Documentation Index
Fetch the complete documentation index at: https://docs.getmembrane.com/llms.txt
Use this file to discover all available pages before exploring further.
External Event Types are an experimental workspace-level element. The shape of the API and console UI may change
before it is generally available.
- The connector you use is shared (for example a public connector from the Membrane Universe) and you don’t want to fork it just to add one event.
- Different tenants need different events from the same app and managing that variability inside the connector would be awkward.
- You want to iterate on event handling without going through a connector publish cycle.
subscribe, handle, unsubscribe, and (optional) refresh functions —
exactly the same lifecycle and logging as connector-level events.
Scoping
A single External Event Type can live at one of three scopes:| Scope | Set when… | Applies to |
|---|---|---|
| Universal | No integrationId or connectionId is set | Every integration in the workspace. Children can be created per integration to override the definition. |
| Integration | integrationId is set | All connections of a single integration. |
| Connection | connectionId is set | A single connection (typically used to override the type for one tenant). |
Definition
External Event Types are managed from the External Event Types page in the console (under the experimental section), or via the/external-event-types API endpoints.
Each type has:
| Field | Description |
|---|---|
name | Human-readable name shown in the console. |
key | Stable identifier used by triggers and exports. |
type | Implementation flavour. Currently only webhook is supported. |
parametersSchema | JSON Schema for parameters the subscriber must supply (for example, projectId). |
schema | JSON Schema describing the payload of emitted events. |
example | Optional example payload, used for testing and to generate schema. |
subscribe | JavaScript function called once when a subscription is created. Registers the webhook with the external system and returns subscription state. |
handle | JavaScript function called for each incoming webhook payload. Returns { events, response?, state? }. |
unsubscribe | JavaScript function called when the subscription is no longer needed. Deregisters the webhook. |
refresh | Optional JavaScript function called periodically to keep the subscription alive when the external app requires it. |
Subscribing from a Flow
Use aconnector-event-trigger in your flow and point its eventKey at the key of the External
Event Type. The same trigger node handles connector-level events and stand-alone External Event
Types — Membrane resolves the right definition based on the integration and connection used by the
flow instance.
subscribe function, generates a webhook URI, and routes incoming payloads
through handle and into the flow.
Logs and Troubleshooting
Stand-alone External Event Types use the same monitoring surfaces as connector-level events:- External Webhooks — raw incoming payloads
- External Events — processed events and their status
- External Event Subscriptions — subscription state and history