---
title: "Webflow Connector"
description: "Implementation notes for building and operating the Webflow connector in Tajo."
url: https://tajo.io/docs/connectors/webflow/
markdown: https://tajo.io/docs/connectors/webflow.md
lang: en-US
robots: noindex
---

# Webflow Connector

Connector status: In progress Being built. Not verified yet.

| Source field | Destination field | Sample value |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Connector implementation

## Build the Webflow integration

Form submissions, ecommerce products, orders, inventory, custom code injection, CMS collections, and webhooks from Webflow sites via the v2 Data API. Phase 1 of the Webflow ↔ Brevo native app pilot.

Website Builder

*Webflow connector flow from source system to Tajo mapping and Brevo activation.*

## Implementation Overview

**Build target**

Implement a Webflow connector that authenticates to the vendor surface, normalizes source records in Tajo, and activates eligible data in Brevo.

**Current status**

The connector is marked runtime-ready. Verify production credentials, scopes, and workspace settings before enabling sync.

**Primary surface**

api.webflow.com

| Property | Value |
| --- | --- |
| Integration surface | API + MCP |
| Status | In progress |
| Category | Website Builder |
| Setup complexity | easy |
| Vendor documentation | [developers.webflow.com/data/docs/getting-started-apps](https://developers.webflow.com/data/docs/getting-started-apps) |
| Allowed host | `api.webflow.com` |
| Base URL | `https://api.webflow.com/v2` |
| OpenAPI schema | `integrations/webflow/spec/openapi.yml` |
| MCP server | [mcp.webflow.com/sse](https://mcp.webflow.com/sse) |
| Last researched | 2026-08-07 |

The MCP endpoint was verified by handshake on 2026-08-07: 401 with RFC 9728 metadata; it is its own authorization server and supports dynamic client registration.

## Authentication

- **Bearer token** (OpenAPI mode). Sent as `Authorization: Bearer <token>`. Tajo resolves it per workspace (`WEBFLOW_ACCESS_TOKEN`).

- **OAuth 2.0** (MCP mode).

  - Authorize: [mcp.webflow.com/oauth/authorize](https://mcp.webflow.com/oauth/authorize)
  - Token: [mcp.webflow.com/oauth/token](https://mcp.webflow.com/oauth/token)
  - The authorization server publishes no scope list.

- Restrict outbound API traffic to `api.webflow.com` unless the vendor documents additional regional hosts.

- Use `https://api.webflow.com/v2` as the default REST base URL and keep regional or account-specific overrides configurable.

- Use `integrations/webflow/spec/openapi.yml` to generate or validate typed API clients and request models.

- Validate the MCP server endpoint at [mcp.webflow.com/sse](https://mcp.webflow.com/sse) and document required headers, auth grants, and tool availability.

- Keep [developers.webflow.com/data/docs/getting-started-apps](https://developers.webflow.com/data/docs/getting-started-apps) linked from the connector runbook so operators can confirm vendor behavior during incidents.

- Store credentials per Tajo workspace and keep tenant-specific secrets out of connector configuration files.

- Add a credential smoke test that verifies read access to a harmless resource before running backfills or enabling webhooks.

## Data To Sync

Start with these inferred data domains, then confirm exact vendor resources and permissions from the source documentation:

- Commerce, payment, or subscription objects
- Events, webhooks, and behavioral activity

The connector should make source records idempotent by keeping a stable key such as a vendor object ID, email address, event ID, ticket ID, order ID, or campaign ID. If the vendor only exposes list APIs, Tajo should store the cursor strategy and replay policy explicitly.

## Sync Shape

| Resource | Direction | Conflict handling |
| --- | --- | --- |
| `form_submissions` | inbound | n/a |
| `orders` | inbound | n/a |

## Mapping To Tajo/Brevo

Webflow has a typed contract, and every resource on it is read for context rather than projected into Brevo. That is a recorded decision, not a gap: no field of this connector currently becomes a Brevo contact, list, or event.

The conventions that apply to every connector — stable external IDs, normalization, backfill and sync strategy, error handling, and the builder checklist — are documented once under “Applies to every connector” on the [connector catalog](https://tajo.io/docs/connectors).

## Sources

- [Vendor documentation](https://developers.webflow.com/data/docs/getting-started-apps)
- [MCP endpoint or documentation](https://mcp.webflow.com/sse)
- [github.com/webflow/openapi-spec](https://github.com/webflow/openapi-spec)
- [developers.webflow.com/data/reference](https://developers.webflow.com/data/reference)
- [github.com/webflow/mcp-server](https://github.com/webflow/mcp-server)
- [mcp.webflow.com/.well-known/oauth-protected-resource/sse](https://mcp.webflow.com/.well-known/oauth-protected-resource/sse)
