Introduction
Montlake Labs is a workflow automation platform that connects the tools your team already uses and runs the work between them on our infrastructure. You build flows visually, we handle the queues, retries, and replays so you don't have to think about them.
If you're brand new, jump to the Quickstart. If you're integrating Montlake into an existing stack, the Triggers and Webhook 101 sections are probably the right entry points.
Quickstart: your first flow
The fastest way to understand Montlake is to build something tiny. In this quickstart you'll wire a Slack trigger into a Notion action, with a single condition in the middle. Total time: about ten minutes.
1. Create a workspace
Sign in and click New workspace. Workspaces are how we keep environments separate — production, staging, scratch.
2. Connect Slack and Notion
Open Connections, click Add, and complete the OAuth dance for both. You can revoke any connection at any time without breaking other flows.
3. Build the flow
Hit New flow, choose Slack → new message as the trigger, add a Condition step that matches messages containing "/ship", and finish with a Notion → create page action.
// Pseudo-flow definition
trigger: slack.message
channel: "#shipping"
filter: input.text.includes("/ship")
action: notion.create_page
database_id: env.SHIP_LOG_DB
properties:
title: input.text
author: input.user.real_name
4. Test, then ship
Click Test run. Watch every step in the timeline. When it looks right, flip the toggle in the top-right and it's live. You can edit it later in production without redeploying.
Workspaces
A workspace is an isolated environment with its own connections, secrets, and flow history. Most teams keep a production workspace alongside a staging workspace and a personal scratch workspace for prototyping. Workspaces don't share data — credentials in staging can't reach production, and vice versa.
Triggers
A trigger is the event that starts a flow. The two broad categories are event triggers (a webhook fired, a record changed, a Slack message posted) and schedule triggers (every five minutes, daily at 9am, every weekday). Every flow has exactly one trigger; if you need a flow to react to multiple events, build two flows that converge on a shared action.
Steps & actions
Steps are the units of work inside a flow. An action step calls out to a connected tool (send a Slack message, create a Notion page, upsert a HubSpot contact). A transform step reshapes data. A code step lets you drop in TypeScript or Python when the built-ins fall short. Each step's output is available as input to every step after it.
Conditions & branches
A condition step splits a flow into branches. The expression language is small on purpose: equality, comparison, regex match, and boolean logic, evaluated against any step's output. Branches can re-converge, fan out further, or end early — Montlake will only run the branches that the data takes.
Webhook 101
The webhook trigger gives you a unique HTTPS endpoint per flow. Post a JSON body to it and the flow runs. We log every inbound request — body, headers, signature — and keep it queryable for the retention window of your plan. Use the signing secret tab to verify HMAC signatures before processing.
Add an AI step
The AI step accepts a prompt, a model choice, and a structured output schema. You can use our managed credentials or wire in your own OpenAI, Anthropic, or self-hosted endpoint. Outputs are validated against the schema before downstream steps see them, so a typo in a model response can't poison the rest of the flow.
Custom connectors
If we don't have the integration you need, wrap any HTTPS API in a custom connector. Define its auth method (OAuth, API key, HMAC), the actions it exposes, and the input/output shapes. Once published into your workspace, a custom connector behaves like every other Montlake action — usable in any flow, scoped by role, audited like the rest.
Test runs & replays
Every flow has a sandbox that runs against fixture data without firing real side effects. After the flow is live, the run timeline lets you click into any past run, inspect every step's input and output, and replay from this step with edits — useful when a third-party blip dropped one call midway through.
Observability
Every run, step, and webhook delivery is timestamped, searchable, and exportable. Filter by flow, status, correlation ID, or custom tag. For deeper analysis, forward the audit stream to your SIEM of choice — Datadog, Splunk, S3 — without paying per event.
Versioning & rollback
Every change to a flow is versioned. You can see who changed what and when, diff two versions side by side, and roll back to any earlier version in one click. Rollbacks take effect on the next trigger — in-flight runs continue on the version they started on so you don't lose work mid-flow.
SSO & roles
Business and Enterprise plans support SAML 2.0 and SCIM provisioning with any IdP that speaks either protocol — Okta, Entra, Google Workspace, JumpCloud. Roles are configurable per workspace: Owner, Builder, Operator, and Viewer, with optional custom roles on Enterprise.
Audit logs
Every administrative action — connector created, secret rotated, flow published, member invited — is recorded in an append-only audit log. Export the log via API, stream it to your SIEM, or download monthly snapshots from the admin console.