Actions

An action is a single operation your agent or app performs in an external app: create a contact, send a message, list invoices, update a deal. Actions are the primary way to interact with connected apps through Membrane. See Actions API Reference for the full API.

Finding Actions

Describe what you want to do and Membrane finds matching actions. You can search by intent across your workspace and connected apps.

Way to UseHow to Find
CLImembrane action list --connectionId <id> --intent "create a contact"
MCPUse the list-actions tool with intent parameter
APIGET /actions?connectionId=<id>&intent=create+a+contact
SDKmembrane.actions.find({ connectionId: '<id>', intent: 'create a contact' })
ConsoleActions page — browse and search

Running Actions

Execute an action on a connected app.

Way to UseHow to Run
CLImembrane action run <actionId> --connectionId <id> --input '{"email": "[email protected]"}'
MCPUse the run-action tool
APIPOST /actions/<actionId>/run?connectionId=<id> with input body
SDKmembrane.action('<actionId>').run({ email: '[email protected]' }, { connectionId: '<id>' })
ConsoleAction → Run (test with sample input)

Input is validated against the action's inputSchema. Extra properties are silently ignored.

Managing Actions

Creating

Create actions from an intent — describe what the action should do and Membrane configures it automatically.

Way to UseHow to Create
CLImembrane action create "create a task" --connectionId <id>
MCPUse the create-action tool
APIPOST /actions with { "intent": "create a task", "connectionId": "<id>" }
SDKmembrane.actions.create({ intent: 'create a task', connectionId: '<id>' })
ConsoleActions → Create Action

The action enters a BUILDING state while Membrane configures it. Use --wait (CLI) or ?wait=true (API) to wait until ready.

Updating

Update an action's configuration.

Way to UseHow to Update
APIPATCH /actions/<actionId>
SDKmembrane.action('<actionId>').patch({ ... })
ConsoleAction → Edit

Deleting

Archive an action to remove it.

Way to UseHow to Delete
APIDELETE /actions/<actionId>
SDKmembrane.action('<actionId>').archive()
ConsoleAction → Archive

Action Types

Actions map to function types that determine what happens when they run:

TypeDescription
api-request-to-external-appMake API requests with automatic authentication
api-request-to-your-appMake an API request to your backend
run-javascriptRun custom JavaScript/TypeScript logic
http-requestMake arbitrary HTTP requests

Logging

All action runs are recorded in Action Run Logs, including input, output, duration, and errors.