> ## Documentation Index
> Fetch the complete documentation index at: https://conductorone-docs-mcp-bridge-private-server.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Set up a Typeform connector

> C1 provides identity governance for Typeform. Integrate your Typeform account with C1 for unified visibility and governance over workspace access.

## Capabilities

| Resource   | Sync                                                          | Provision |
| ---------- | ------------------------------------------------------------- | --------- |
| Users      | <Icon icon="square-check" iconType="solid" color="#c937ae" /> |           |
| Workspaces | <Icon icon="square-check" iconType="solid" color="#c937ae" /> |           |

## Gather Typeform credentials

<Warning>
  The connector reads workspaces and their members with a Typeform personal
  access token. The token inherits the access of the account that created it, so
  create it on an account that can see every workspace you want to sync.
</Warning>

<Steps>
  <Step>
    In Typeform, open your account **Settings** and go to **Personal tokens**.
  </Step>

  <Step>
    Generate a new personal access token and copy it. The token is shown only
    at creation time.
  </Step>

  <Step>
    Note the API URL for your account. Most accounts use
    `https://api.typeform.com`. Accounts in the European data region use
    `https://api.eu.typeform.com`.
  </Step>
</Steps>

## Configuration fields

| Field       | Required | Description                                                                                                                                                                |
| ----------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `base-url`  | Yes      | The base URL of the Typeform API, with no trailing slash. Use `https://api.typeform.com` for most accounts, or `https://api.eu.typeform.com` for the European data region. |
| `api-token` | Yes      | A Typeform personal access token, sent as a bearer token.                                                                                                                  |

## Synced resource types

* **Users**: Typeform members, materialized from the members embedded in each
  workspace. A member is identified by email.
* **Workspaces**: Typeform workspaces from `/workspaces`. Each workspace exposes
  a single `member` entitlement granted to its members.

## Special notes

* Provisioning is not supported in the current build.
* The connector authenticates with a personal access token sent as
  `Authorization: Bearer <token>`.
* Typeform does not expose a members list endpoint. Members are read from the
  `members` array embedded in each workspace, so a member who belongs to no
  workspace is not visible to the connector.
* Members carry no stable identifier, so a member's email is used as its
  identifier. If a member's email changes in Typeform, the connector sees a new
  user on the next sync.
* The `base-url` must not have a trailing slash. A trailing slash produces a
  double slash in request paths and returns 404.

## Configure the Typeform connector

<Tabs>
  <Tab title="Cloud-hosted">
    Follow these instructions to use a built-in, no-code connector hosted by C1.

    <Steps>
      <Step>
        In C1, navigate to **Integrations** > **Connectors** and click **Add connector**.
      </Step>

      <Step>
        Search for **Typeform** and click **Add**.
      </Step>

      <Step>
        Choose how to set up the new Typeform connector.
      </Step>

      <Step>
        Set the owner for this connector.
      </Step>

      <Step>
        Click **Next**.
      </Step>

      <Step>
        Find the **Settings** area of the page and click **Edit**.
      </Step>

      <Step>
        Paste the Typeform credentials into the relevant fields:

        * **Typeform API URL**: `https://api.typeform.com` or `https://api.eu.typeform.com`.
        * **Personal access token**: The token you generated in Typeform.
      </Step>

      <Step>
        Click **Save**.
      </Step>

      <Step>
        The connector's label changes to **Syncing**, followed by
        **Connected**. You can view the logs to ensure that information is
        syncing.
      </Step>
    </Steps>

    **Done.** Your Typeform connector is now pulling access data into C1.
  </Tab>

  <Tab title="Self-hosted">
    Follow these instructions to run the Typeform connector in your own
    environment.

    <Steps>
      <Step>
        In C1, navigate to **Integrations** > **Connectors** and click **Add connector**.
      </Step>

      <Step>
        Search for **Baton** and click **Add**.
      </Step>

      <Step>
        Choose how to set up the new Typeform connector, set the owner, and
        click **Next**.
      </Step>

      <Step>
        In the **Settings** area, click **Edit**, then click **Rotate** to
        generate a new Client ID and Client Secret. Store these values securely
        for your deployment.
      </Step>

      <Step>
        Configure C1 credentials and Typeform credentials as environment
        variables:

        ```bash theme={"theme":{"light":"css-variables","dark":"css-variables"}}
        BATON_CLIENT_ID=<C1 client ID>
        BATON_CLIENT_SECRET=<C1 client secret>
        BATON_HOST_ID=baton-typeform
        BATON_BASE_URL=https://api.typeform.com
        BATON_API_TOKEN=<Typeform personal access token>
        ```
      </Step>

      <Step>
        Deploy the connector using the Public ECR image:

        ```bash theme={"theme":{"light":"css-variables","dark":"css-variables"}}
        public.ecr.aws/conductorone/baton-typeform:<version>
        ```

        Use a version tag without the leading `v`, such as `0.0.1`.
      </Step>
    </Steps>

    **Done.** Your Typeform connector is now pulling access data into C1.
  </Tab>
</Tabs>
