Integration.app (Membrane) · AsyncAPI Specification

Integration App Webhooks

Version

View Spec View on GitHub Agentic IntegrationsAI AgentsConnectorsEmbedded IntegrationsEmbedded iPaaSIntegration MarketplaceMCPSelf-HostingUnified APIA2AAsyncAPIEvents

AsyncAPI Specification

Raw ↑
generated: '2026-09-13'
method: searched
source: >-
  https://docs.getmembrane.com/docs/managing-membrane/monitoring-troubleshooting/webhook-notifications,
  https://docs.getmembrane.com/docs/how-membrane-works/events
asyncapi_published: false
asyncapi_note: >-
  No AsyncAPI document is published on any host. Probed /asyncapi.yaml and /asyncapi.json on
  api.getmembrane.com and docs.getmembrane.com, and searched the membranehq GitHub org - nothing.
  The event surface below is read from the provider's documentation, not fabricated into a spec.
surfaces:
- name: Webhook Notifications
  direction: outbound (Membrane -> customer backend)
  description: >-
    Workspace-level notifications about what is happening INSIDE Membrane - connections coming and
    going, flow runs succeeding or failing, alerts opening.
  setup: >-
    A single webhook URL configured in Console under Settings > Webhook Notifications
    (https://console.getmembrane.com/w/0/settings/webhook-notifications). Not configurable via the
    published API.
  delivery: HTTP POST
  envelope:
    fields:
    - eventType
    - data
    note: 'data is keyed by event category: data.connection, data.flowRun, data.alert.'
  retry: >-
    "If your endpoint returns a non-2xx status code, Membrane retries with exponential backoff." No
    retry count, ceiling or dead-letter behaviour is published.
  signing:
    published: false
    note: >-
      No signature header, shared secret or timestamp-verification scheme is documented for webhook
      notifications. A receiver cannot verify the sender from the request alone.
  docs: https://docs.getmembrane.com/docs/managing-membrane/monitoring-troubleshooting/webhook-notifications
- name: External Event Subscriptions
  direction: outbound (Membrane -> customer backend), per subscription
  description: >-
    Events originating in the EXTERNAL app (a new HubSpot contact, a Slack message) that Membrane
    subscribed to on the customer's behalf and forwards on.
  setup: >-
    Create an External Event Subscription with a connectionId and externalEventTypeId, then PATCH a
    webhookUri onto it; Membrane POSTs each emitted event to that URI. 15 REST operations exist for
    this surface (setup, subscribe, resubscribe, unsubscribe, pull, refresh, restore, delete,
    download full-sync snapshot).
  note: >-
    The changelog entry for 2026-08-12 records a BREAKING SDK rename of the webhookUri field to the
    outgoing delivery URL; check which name your SDK version uses.
  docs: https://docs.getmembrane.com/reference/workspace-elements/external-events/external-event-subscriptions
- name: Flow triggers
  direction: internal
  description: >-
    Events consumed inside Membrane as flow triggers rather than delivered to the customer.
  docs: https://docs.getmembrane.com/docs/how-membrane-works/events
events:
- name: connection.created
  surface: Webhook Notifications
  when: A new connection is established (OAuth completed, API key saved).
  payload_keys:
  - data.connection.id
  - data.connection.integrationId
  - data.connection.integrationKey
  - data.connection.name
  - data.connection.disconnected
  - data.connection.customerId
- name: connection.disconnected
  surface: Webhook Notifications
  when: A connection lost access (token expired, credentials revoked).
- name: connection.reconnected
  surface: Webhook Notifications
  when: A previously disconnected connection is restored.
- name: connection.deleted
  surface: Webhook Notifications
  when: A connection is archived.
  note: >-
    The event is named "deleted" but fires on ARCHIVE, which is reversible - see the reversibility
    block in conventions/.
- name: flowRun.queued
  surface: Webhook Notifications
  when: A flow run is queued for execution.
- name: flowRun.started
  surface: Webhook Notifications
  when: A flow run begins executing.
- name: flowRun.completed
  surface: Webhook Notifications
  when: A flow run finishes successfully.
  payload_keys:
  - data.flowRun.id
  - data.flowRun.connectionFlowId
  - data.flowRun.integrationFlowId
  - data.flowRun.state
  - data.flowRun.startTime
  - data.flowRun.endTime
  - data.flowRun.startNodeKey
  - data.flowRun.launchedBy
- name: flowRun.failed
  surface: Webhook Notifications
  when: A flow run fails with an error.
  payload_keys:
  - data.flowRun.errors
- name: flowRun.stopped
  surface: Webhook Notifications
  when: A flow run is manually stopped.
- name: alert.created
  surface: Webhook Notifications
  when: An alert is created or becomes ongoing.
  payload_keys:
  - data.alert.id
  - data.alert.type
  - data.alert.severity
  - data.alert.description
  - data.alert.status
  - data.alert.workspaceId
  - data.alert.workspaceUrl
  - data.alert.createdAt
- name: data-record-created
  surface: External Event Subscriptions / flow triggers
  when: A new record appears in the external app's data collection.
- name: data-record-updated
  surface: External Event Subscriptions / flow triggers
  when: An existing record changes in the external app.
- name: data-record-deleted
  surface: External Event Subscriptions / flow triggers
  when: A record is removed in the external app.
delivery_mechanics:
  detection:
  - webhooks from the external app where it supports them
  - polling where it does not
  polling_defaults:
    pull_based_seconds: 300
    full_scan_seconds: 10800
  polling_minimums:
    incremental_pull_seconds: 60
    full_sync_minutes: 60
    note: >-
      The limits page states a 60-minute minimum full-sync interval; the 2026-08-11 changelog entry
      records the minimum full-sync interval being raised to 10 minutes. The two statements disagree
      and both are the provider's own - recorded as found rather than reconciled.
  concurrency:
    parallel_incremental_pulls_per_connection: 1
    parallel_full_sync_pulls_per_connection: 1
    parallel_pulls_per_workspace: 10
  source: https://docs.getmembrane.com/docs/managing-membrane/limits
observability:
  logs:
  - External Webhooks - raw incoming payloads from external apps
  - External Event Pulls - each polling cycle
  - External Events - processed events with payload and status
  - Flow Runs - execution logs per triggered flow
  docs: https://docs.getmembrane.com/docs/managing-membrane/monitoring-troubleshooting/logs
event_count: 13

Work with this as data

Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/integration-app-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.