Membrane Overview

Membrane is a universal integration layer for your product.

It lets you build and manage a single bi-directional interface for interacting with external APIs in a consistent way. It handles:

  • Managing authentication with external APIs on behalf of your customers.
  • Mapping requests from your product to external APIs and their responses.
  • Collecting and normalizing events in external services using a variety of mechanisms (webhooks, polling, etc).
  • Orchestrating data flows between your product and external services.
  • Managing and applying end-customer configurations.
  • Normalizing and handling errors.
  • Logging and monitoring everything that happens between your product and external services.

It is implemented as an API-first service that runs in the cloud or hosted on your own infrastructure.

External Apps

You can connect to any external app that has an API.

For the most popular apps, we provide pre-built connectors you can use out of the box.
If you need to connect to an app we don't have a connector for yet or modify one of the pre-built connectors, you can use Connector Builder.

Read about connecting external apps here: External Apps.

Interfaces

Interfaces are integration primitives that let your product code interact with external apps in a consistent way,
abstracting away all the differences between APIs and customer setups.

This lets you build your integration logic and UI once and make it work with any number of external apps.

Each interface provides a single consistent API or UI for your app on one side and any number of API-specific and customer-specific implementations on another side.
The app-specific and customer-specific implementations are auto-generated when possible and you have full ability to edit them via API or Console.

For example, if you want to create a task in any external app and let each of your customers choose where to create tasks and how to populate the task's fields, you would:

  • Create a universal Flow that describes the general logic such as "accept these inputs and create a record in an external app".
  • Generate any number of application-level flows and customize them if needed.
  • Enable the flows for any number of customers and use customer-level Building Blocks such as Data Sources or Field Mappings to customize how the integration works for each of them.

Integration Logic

Configuration and State Management

Internal Interfaces

Application-specific Resources

Utilities


Monitoring and Troubleshooting

Integrations are fragile. Our suite of monitoring and troubleshooting tools helps you understand what is happening (or not happening) and why.
It keeps you proactively informed about issues and lets you investigate and fix problems when they do happen.

Read more: Monitoring and Troubleshooting.

References

  • API Reference
  • Data Schemas - an extension of JSONSchema we use to define data structures throughout the system.
  • Formulas used to transform data inside integrations.
  • Limits applied in the cloud version (can be overridden in the self-hosted version).