> ## Documentation Index
> Fetch the complete documentation index at: https://nango-wari-integration-config-credentials-api.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Basecamp

## Overview

<CardGroup cols={3}>
  <Card title="Pre-built tooling" icon="screwdriver-wrench" href="#pre-built-tooling" />

  <Card title="Pre-built integrations" icon="square-check" href="#pre-built-integrations" />

  <Card title="Access requirements" icon="triangle-exclamation" href="#access-requirements" />

  <Card title="Setup guide" icon="rocket" href="#setup-guide" />

  <Card title="Useful links" icon="circle-info" href="#useful-links" />

  <Card title="API gotchas" icon="biohazard" href="#api-gotchas" />
</CardGroup>

## Pre-built tooling

<AccordionGroup>
  <Accordion title="✅ Authorization">
    | Tools                           | Status |
    | ------------------------------- | ------ |
    | Pre-built authorization (OAuth) | ✅      |
    | Credentials auto-refresh        | ✅      |
    | Auth parameters validation      | ✅      |
    | Pre-built authorization UI      | ✅      |
    | Custom authorization UI         | ✅      |
    | End-user authorization guide    | ✅      |
    | Expired credentials detection   | ✅      |
  </Accordion>

  <Accordion title="✅ Read & write data">
    | Tools                                     | Status                         |
    | ----------------------------------------- | ------------------------------ |
    | Pre-built integrations                    | ✅                              |
    | API unification                           | ✅                              |
    | 2-way sync                                | ✅                              |
    | Webhooks from Nango on data modifications | ✅                              |
    | Real-time webhooks from 3rd-party API     | 🚫 (time to contribute: \<48h) |
    | Proxy requests                            | ✅                              |
  </Accordion>

  <Accordion title="✅ Observability & data quality">
    | Tools                   | Status |
    | ----------------------- | ------ |
    | HTTP request logging    | ✅      |
    | End-to-end type safety  | ✅      |
    | Data runtime validation | ✅      |
    | OpenTelemetry export    | ✅      |
    | Slack alerts on errors  | ✅      |
    | Integration status API  | ✅      |
  </Accordion>

  <Accordion title="✅ Customization">
    | Tools                              | Status                         |
    | ---------------------------------- | ------------------------------ |
    | Create or customize use-cases      | ✅                              |
    | Pre-configured pagination          | 🚫 (time to contribute: \<48h) |
    | Pre-configured rate-limit handling | 🚫 (time to contribute: \<48h) |
    | Per-customer configurations        | ✅                              |
  </Accordion>
</AccordionGroup>

### Others

| Function name                      | Description                                                                                                                                | Type                                           | Source code                                                                                                                               |
| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| `archive-project`                  | Archive a project.                                                                                                                         | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/archive-project.ts)                  |
| `archive-recording`                | Archive any recording.                                                                                                                     | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/archive-recording.ts)                |
| `change-card-table-column-color`   | Change a card table column's color.                                                                                                        | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/change-card-table-column-color.ts)   |
| `complete-todo`                    | Mark a to-do as completed.                                                                                                                 | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/complete-todo.ts)                    |
| `create-campfire-line`             | Post a line (message) to a Campfire.                                                                                                       | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/create-campfire-line.ts)             |
| `create-card-table-card`           | Create a card in a Card Table column.                                                                                                      | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/create-card-table-card.ts)           |
| `create-card-table-column`         | Create a new column on a Card Table.                                                                                                       | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/create-card-table-column.ts)         |
| `create-card-table-step`           | Create a checklist step on a card table card.                                                                                              | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/create-card-table-step.ts)           |
| `create-comment`                   | Post a comment on any recording                                                                                                            | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/create-comment.ts)                   |
| `create-document`                  | Create a document in a vault.                                                                                                              | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/create-document.ts)                  |
| `create-message`                   | Create a message on a project message board.                                                                                               | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/create-message.ts)                   |
| `create-project`                   | Create a project.                                                                                                                          | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/create-project.ts)                   |
| `create-schedule-entry`            | Create a schedule entry on a project schedule                                                                                              | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/create-schedule-entry.ts)            |
| `create-todo`                      | Create a to-do in a specific to-do list, resolving assignee/completion-subscriber emails to person IDs first.                              | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/create-todo.ts)                      |
| `create-todolist-group`            | Create a group (section) within a to-do list.                                                                                              | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/create-todolist-group.ts)            |
| `create-todolist`                  | Create a to-do list under a project to-do set.                                                                                             | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/create-todolist.ts)                  |
| `create-upload-version`            | Replace an upload file with a new version.                                                                                                 | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/create-upload-version.ts)            |
| `create-upload`                    | Attach a previously-staged file (from upload-attachment) into a vault as an Upload record.                                                 | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/create-upload.ts)                    |
| `create-vault-folder`              | Create a sub-folder inside a vault.                                                                                                        | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/create-vault-folder.ts)              |
| `delete-campfire-line`             | Permanently delete a Campfire line.                                                                                                        | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/delete-campfire-line.ts)             |
| `disable-tool`                     | Disable a project dock tool, removing it from the dock without deleting its content (reversible via enable-tool).                          | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/disable-tool.ts)                     |
| `enable-tool`                      | Enable a project's dock tool (e.g. Message Board, Docs & Files, Chat, Card Table, Calendar), adding it back to the dock.                   | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/enable-tool.ts)                      |
| `fetch-accounts`                   | Get the token owner's identity and the list of Basecamp accounts (and other 37signals products) the token can access.                      | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/fetch-accounts.ts)                   |
| `fetch-todolists`                  | Fetch all to-do lists in a project's to-do set.                                                                                            | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/fetch-todolists.ts)                  |
| `get-account`                      | Get details about the current Basecamp account (subscription plan, limits, trial status).                                                  | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/get-account.ts)                      |
| `get-campfire-line`                | Retrieve a single Campfire line.                                                                                                           | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/get-campfire-line.ts)                |
| `get-campfire`                     | Get a project's Campfire (chat room).                                                                                                      | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/get-campfire.ts)                     |
| `get-card-table-card`              | Retrieve a single Card Table card.                                                                                                         | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/get-card-table-card.ts)              |
| `get-card-table-column`            | Retrieve a single Card Table column.                                                                                                       | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/get-card-table-column.ts)            |
| `get-card-table`                   | Get a Basecamp card table (Kanban board) including its columns.                                                                            | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/get-card-table.ts)                   |
| `get-comment`                      | Retrieve a single comment.                                                                                                                 | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/get-comment.ts)                      |
| `get-document`                     | Retrieve a single document.                                                                                                                | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/get-document.ts)                     |
| `get-message-board`                | Get a project's message board (the container for all its messages) and message count.                                                      | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/get-message-board.ts)                |
| `get-message`                      | Retrieve a single message.                                                                                                                 | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/get-message.ts)                      |
| `get-my-preferences`               | Get the current token owner's account preferences (time zone, first day of week, time format).                                             | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/get-my-preferences.ts)               |
| `get-my-profile`                   | Get the current token owner's own profile.                                                                                                 | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/get-my-profile.ts)                   |
| `get-person`                       | Retrieve a single person's profile by ID.                                                                                                  | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/get-person.ts)                       |
| `get-project`                      | Retrieve a single project, including its dock (tool list) and team sample.                                                                 | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/get-project.ts)                      |
| `get-recording-events`             | Get the audit-trail events for any recording                                                                                               | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/get-recording-events.ts)             |
| `get-schedule-entry`               | Retrieve a single schedule entry.                                                                                                          | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/get-schedule-entry.ts)               |
| `get-schedule`                     | Get a project's schedule (calendar).                                                                                                       | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/get-schedule.ts)                     |
| `get-todo`                         | Retrieve a single to-do.                                                                                                                   | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/get-todo.ts)                         |
| `get-todolist`                     | Get a single to-do list.                                                                                                                   | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/get-todolist.ts)                     |
| `get-todoset`                      | Get a project's to-do set and a summary list of its to-do lists.                                                                           | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/get-todoset.ts)                      |
| `get-tool`                         | Get a single dock tool (e.g. a project's Chat, Card Table, or Message Board tool object) by its ID.                                        | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/get-tool.ts)                         |
| `get-upload-versions`              | List the version history of an upload's file content.                                                                                      | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/get-upload-versions.ts)              |
| `get-upload`                       | Retrieve a single upload's metadata.                                                                                                       | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/get-upload.ts)                       |
| `get-vault`                        | Get a project's top-level vault (Docs & Files) or a sub-folder vault.                                                                      | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/get-vault.ts)                        |
| `list-campfire-lines`              | List messages (lines) in a Campfire.                                                                                                       | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/list-campfire-lines.ts)              |
| `list-campfire-uploads`            | List file uploads posted in a Campfire, newest first.                                                                                      | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/list-campfire-uploads.ts)            |
| `list-card-table-cards`            | List the cards in a Card Table column.                                                                                                     | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/list-card-table-cards.ts)            |
| `list-comments`                    | List comments on any recording (to-do, message, document, upload, card, schedule entry, to-do list, etc).                                  | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/list-comments.ts)                    |
| `list-documents`                   | List documents in a vault.                                                                                                                 | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/list-documents.ts)                   |
| `list-messages`                    | List messages on a project's message board                                                                                                 | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/list-messages.ts)                    |
| `list-people`                      | List all people visible to the current user across the whole account.                                                                      | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/list-people.ts)                      |
| `list-pingable-people`             | List people on the account who can be pinged (direct messaged).                                                                            | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/list-pingable-people.ts)             |
| `list-project-people`              | List the people who have access to a specific project.                                                                                     | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/list-project-people.ts)              |
| `list-projects`                    | List active projects visible to the current user.                                                                                          | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/list-projects.ts)                    |
| `list-recordings-by-type`          | List all recordings of a given type across one or more projects, account-wide.                                                             | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/list-recordings-by-type.ts)          |
| `list-schedule-entries`            | List entries (events) on a project's schedule.                                                                                             | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/list-schedule-entries.ts)            |
| `list-todolist-groups`             | List the sub-groups (sections) within a to-do list.                                                                                        | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/list-todolist-groups.ts)             |
| `list-todos`                       | List active (non-completed) to-dos in a to-do list.                                                                                        | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/list-todos.ts)                       |
| `list-uploads`                     | List file uploads in a vault.                                                                                                              | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/list-uploads.ts)                     |
| `list-vault-folders`               | List sub-folders (nested vaults) inside a vault.                                                                                           | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/list-vault-folders.ts)               |
| `move-card-table-card`             | Move a card to a different column (and optionally a position within it).                                                                   | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/move-card-table-card.ts)             |
| `move-card-table-column`           | Reposition a column within its Card Table.                                                                                                 | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/move-card-table-column.ts)           |
| `pin-message`                      | Pin a message to the top of the message board.                                                                                             | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/pin-message.ts)                      |
| `remove-card-table-column-on-hold` | Remove the on-hold section from a card table column                                                                                        | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/remove-card-table-column-on-hold.ts) |
| `reposition-card-table-step`       | Change the position of a step within its card.                                                                                             | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/reposition-card-table-step.ts)       |
| `reposition-todo`                  | Change a to-do's position within its list, optionally moving it to a different to-do list.                                                 | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/reposition-todo.ts)                  |
| `reposition-todolist-group`        | Change a to-do list group's position within its parent to-do list.                                                                         | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/reposition-todolist-group.ts)        |
| `reposition-todolist`              | Change a to-do list's position within its to-do set.                                                                                       | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/reposition-todolist.ts)              |
| `reposition-tool`                  | Change a dock tool's position in the project dock.                                                                                         | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/reposition-tool.ts)                  |
| `set-card-table-column-on-hold`    | Add an on-hold section to a Card Table column (used to visually pause cards within a column).                                              | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/set-card-table-column-on-hold.ts)    |
| `set-card-table-step-completion`   | Mark a card table step as completed or uncompleted.                                                                                        | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/set-card-table-step-completion.ts)   |
| `set-recording-client-visibility`  | Toggle whether clients can see a recording                                                                                                 | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/set-recording-client-visibility.ts)  |
| `trash-project`                    | Move a project to the trash (recoverable for 30 days, then auto-deleted).                                                                  | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/trash-project.ts)                    |
| `trash-recording`                  | Move any recording (to-do, to-do list, message, document, upload, card, column, step, schedule entry, comment, etc.) to the account trash. | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/trash-recording.ts)                  |
| `unarchive-project`                | Restore a project from the archive or trash back to active.                                                                                | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/unarchive-project.ts)                |
| `unarchive-recording`              | Restore an archived recording to active                                                                                                    | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/unarchive-recording.ts)              |
| `uncomplete-todo`                  | Mark a to-do as not completed.                                                                                                             | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/uncomplete-todo.ts)                  |
| `unpin-message`                    | Unpin a message.                                                                                                                           | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/unpin-message.ts)                    |
| `unwatch-card-table-column`        | Unsubscribe the current user from notifications for a Card Table column.                                                                   | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/unwatch-card-table-column.ts)        |
| `update-campfire-line`             | Edit a Campfire line's content.                                                                                                            | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/update-campfire-line.ts)             |
| `update-card-table-card`           | Update a card's title, content, due date, or assignees.                                                                                    | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/update-card-table-card.ts)           |
| `update-card-table-column`         | Update a card table column title or description.                                                                                           | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/update-card-table-column.ts)         |
| `update-card-table-step`           | Update a card step title, due date, or assignees.                                                                                          | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/update-card-table-step.ts)           |
| `update-comment`                   | Update a comment's content.                                                                                                                | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/update-comment.ts)                   |
| `update-document`                  | Update a document title or content.                                                                                                        | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/update-document.ts)                  |
| `update-message`                   | Update a message's subject, content, or category.                                                                                          | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/update-message.ts)                   |
| `update-project-access`            | Grant, revoke, or create-and-grant people's access to a project.                                                                           | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/update-project-access.ts)            |
| `update-project`                   | Update a project's name, description, schedule dates, or access policy.                                                                    | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/update-project.ts)                   |
| `update-schedule-entry`            | Update a schedule entry's summary, times, or other fields.                                                                                 | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/update-schedule-entry.ts)            |
| `update-schedule`                  | Change whether a schedule includes due dates from to-dos, cards, and steps.                                                                | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/update-schedule.ts)                  |
| `update-todo`                      | Update a to-do's content, description, dates, or assignees.                                                                                | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/update-todo.ts)                      |
| `update-todolist`                  | Rename a to-do list or change its description.                                                                                             | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/update-todolist.ts)                  |
| `update-tool`                      | Rename a dock tool.                                                                                                                        | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/update-tool.ts)                      |
| `update-upload`                    | Update a Basecamp upload metadata (base\_name and description) without replacing the file content.                                         | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/update-upload.ts)                    |
| `update-vault-folder`              | Rename a vault folder.                                                                                                                     | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/update-vault-folder.ts)              |
| `upload-attachment`                | Upload raw file bytes to Basecamp blob storage and get back an attachable\_sgid                                                            | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/upload-attachment.ts)                |
| `upload-campfire-file`             | Upload a file directly into a Campfire as a chat attachment.                                                                               | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/upload-campfire-file.ts)             |
| `watch-card-table-column`          | Subscribe the current user to notifications for a Card Table column.                                                                       | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/actions/watch-card-table-column.ts)          |
| `campfire-lines`                   | Sync chat lines across all known projects' Campfires.                                                                                      | [Sync](/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/syncs/campfire-lines.ts)                     |
| `card-table-cards`                 | Sync Kanban cards across all known projects' Card Tables.                                                                                  | [Sync](/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/syncs/card-table-cards.ts)                   |
| `comments`                         | Sync comments across all known recordings                                                                                                  | [Sync](/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/syncs/comments.ts)                           |
| `documents`                        | Sync documents across all known projects vaults including sub-folders                                                                      | [Sync](/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/syncs/documents.ts)                          |
| `messages`                         | Sync messages across all known project message boards                                                                                      | [Sync](/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/syncs/messages.ts)                           |
| `people`                           | Sync people (account-wide, not scoped to any one project)                                                                                  | [Sync](/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/syncs/people.ts)                             |
| `projects`                         | Sync projects.                                                                                                                             | [Sync](/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/syncs/projects.ts)                           |
| `schedule-entries`                 | Sync schedule entries (calendar events) across all known projects                                                                          | [Sync](/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/syncs/schedule-entries.ts)                   |
| `todolists`                        | Sync to-do lists across all known projects to-do sets.                                                                                     | [Sync](/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/syncs/todolists.ts)                          |
| `todos`                            | Syncs to-dos from Basecamp for the specified projects                                                                                      | [Sync](/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/syncs/todos.ts)                              |
| `uploads`                          | Sync file uploads across all known projects vaults including sub-folders.                                                                  | [Sync](/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/basecamp/syncs/uploads.ts)                            |

## Access requirements

| Pre-Requisites    | Status         | Comment                                                                           |
| ----------------- | -------------- | --------------------------------------------------------------------------------- |
| Paid dev account  | ✅ Not required | Free, self-signup [here](https://3.basecamp.com/signup/account/new?plan=free_v1). |
| Paid test account | ✅ Not required | Create free account for testing.                                                  |
| Partnership       | ✅ Not required |                                                                                   |
| App review        | ✅ Not required |                                                                                   |
| Security audit    | ✅ Not required |                                                                                   |

## Setup guide

<Steps>
  <Step title="Create a free account">
    Go to [Basecamp's signup page](https://3.basecamp.com/signup/account/new?plan=free_v1) and create an account.
  </Step>

  <Step title="Create & configure a Basecamp app">
    * Start creating a Basecamp app by heading to the following [page](https://launchpad.37signals.com/integrations).
    * Click **Register another application** to open the application registration form.
    * Fill in the **About** section and configure the Redirect URL as follows: `https://api.nango.dev/oauth/callback`.
    * Select the products your app integrates with.
    * Submit Your Application.
    * Once your application has been created, navigate to the specific app page and copy the `Client ID` and `Client Secret`. You will need to specify these in Nango later.
  </Step>

  <Step title="Next">
    Follow the [*Quickstart*](/getting-started/quickstart).
  </Step>
</Steps>

<Tip>Need help getting started? Get help in the [community](https://nango.dev/slack).</Tip>

<Note>Contribute improvements to the setup guide by [editing this page](https://github.com/nangohq/nango/tree/master/docs/integrations/all/basecamp.mdx)</Note>

## Useful links

| Topic     | Links                                                                                                         |
| --------- | ------------------------------------------------------------------------------------------------------------- |
| General   | [Website](https://basecamp.com/)                                                                              |
|           | [Create a test account](https://3.basecamp.com/signup/account/new?plan=free_v1)                               |
| Developer | [API documentation](https://github.com/basecamp/bcx-api/blob/master/README.md#api-ready-for-use)              |
|           | [Authorization documentation](https://github.com/basecamp/api/blob/master/sections/authentication.md#oauth-2) |
|           | [Register an OAuth app](https://launchpad.37signals.com/integrations)                                         |
|           | [Details on rate limits](https://github.com/Basecamp/bcx-api?tab=readme-ov-file#rate-limiting)                |

<Note>Contribute useful links by [editing this page](https://github.com/nangohq/nango/tree/master/docs/integrations/all/basecamp.mdx)</Note>

## API gotchas

* When creating a new connection in Nango, you will need to add the `appDetails`, configuration parameter in the format `MyApp (yourname@example.com)`, which will be appended to the request as a header: `User-Agent: MyApp (yourname@example.com)`. This information will be used to get in touch if you’re doing something wrong(so the provider can warn you before you’re blocked) or something awesome (so the provider can congratulate you). Requests without a valid `User-Agent` header are rejected.
* You will also need to add in your `accountId` connection configuration parameter.
  <Note>Contribute API gotchas by [editing this page](https://github.com/nangohq/nango/tree/master/docs/integrations/all/basecamp.mdx)</Note>

## Going further

<Card title="Connect to Basecamp" icon="link" href="/integrations/all/basecamp/connect" horizontal>
  Guide to connect to Basecamp using Connect UI
</Card>
