> ## 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 Basecamp connector

> C1 provides identity governance for Basecamp. Integrate your Basecamp instance with C1 for unified visibility and governance over user access.

C1 provides identity governance for Basecamp. Integrate your Basecamp
account with C1 for unified visibility and governance over who can access
your projects.

## Capabilities

| Resource           | Sync                                                          | Provision |
| ------------------ | ------------------------------------------------------------- | --------- |
| People             | <Icon icon="square-check" iconType="solid" color="#c937ae" /> |           |
| Projects           | <Icon icon="square-check" iconType="solid" color="#c937ae" /> |           |
| Project membership | <Icon icon="square-check" iconType="solid" color="#c937ae" /> |           |

The connector syncs the people on your Basecamp account, your projects, and
which people are members of each project. Account-level roles (owner, admin,
client) are recorded as attributes on each person.

## Gather Basecamp credentials

<Warning>
  Set up the OAuth application as a Basecamp account owner or administrator so
  the connector can see every person and project on the account.
</Warning>

Basecamp authenticates with 3-legged OAuth 2.0. You register an OAuth
application, complete the one-time authorization in a browser to obtain a
long-lived refresh token, and provide that refresh token to the connector.
The connector exchanges it for short-lived access tokens automatically.

<Steps>
  <Step>
    Register an OAuth application at
    [launchpad.37signals.com/integrations](https://launchpad.37signals.com/integrations).
    Note the **Client ID** and **Client Secret**.
  </Step>

  <Step>
    Complete the OAuth authorization flow once to obtain a **refresh token**
    for the account you want to sync. The authorization request goes to
    `https://launchpad.37signals.com/authorization/new` and the token
    exchange to `https://launchpad.37signals.com/authorization/token`.
  </Step>

  <Step>
    Find your account's API base URL at
    [launchpad.37signals.com/authorization.json](https://launchpad.37signals.com/authorization.json).
    Use the `href` of the `accounts[]` entry whose `product` is `bc3` — it
    looks like `https://3.basecampapi.com/1234567`. If your identity has
    access to more than one Basecamp account, pick the one to sync.
  </Step>
</Steps>

## Configure the Basecamp 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 **Basecamp** and click **Add**.
      </Step>

      <Step>
        Choose how to set up the new Basecamp 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>
        Enter the Basecamp credentials:

        * **Basecamp API base URL**: Your per-account API base, e.g. `https://3.basecampapi.com/1234567`.
        * **OAuth client ID**: The Client ID of your Basecamp OAuth application.
        * **OAuth client secret**: The Client Secret of your Basecamp OAuth application.
        * **OAuth refresh token**: The long-lived refresh token from the authorization flow.
      </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 Basecamp connector is now pulling access data into C1.
  </Tab>

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

    <Steps>
      <Step>
        Create secrets for the OAuth client secret and refresh token.
      </Step>

      <Step>
        Configure the connector environment variables:

        * **BATON\_BASECAMP\_BASE\_URL**: Your per-account API base, e.g. `https://3.basecampapi.com/1234567`.
        * **BATON\_BASECAMP\_CLIENT\_ID**: The OAuth application Client ID.
        * **BATON\_BASECAMP\_CLIENT\_SECRET**: The OAuth application Client Secret.
        * **BATON\_BASECAMP\_REFRESH\_TOKEN**: The long-lived OAuth refresh token.
      </Step>

      <Step>
        Deploy the connector using your standard self-hosted connector process.
      </Step>
    </Steps>

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