Skip to main content

Basecamp integration

Manage Basecamp projects, to-dos, and message boards across your client Basecamp accounts.

What it does

The Basecamp integration lets your agency run projects, to-dos, and message-board updates on behalf of your clients without leaving TaskJuice. Connect a client's Basecamp account once and you can list active projects, create to-dos inside any to-do list, fetch a to-do's current state, post messages to a project's message board, and run a workflow every time a to-do is created, completed, or reopened in the connected account.

Connect a Basecamp account

  1. Open your workspace in TaskJuice and navigate to Connections.
  2. Choose Basecamp and click Connect.
  3. Sign in with the 37signals identity that has access to the Basecamp account you want to manage on behalf of your client.
  4. Approve the requested access (the Basecamp Launchpad scope covers every action and trigger this integration uses).
  5. Enter the numeric account ID for the connected Basecamp tenant. You can read it off any Basecamp URL: the segment immediately after 3.basecamp.com/ is the account ID.
  6. TaskJuice returns you to the workspace with the connection ready to use in any workflow.

To revoke access at any time, visit 37signals account applications and remove the TaskJuice entry.

Triggers

  • basecamp/todo-updated fires once per Basecamp webhook event for the todo_created, todo_completed, and todo_uncompleted event kinds. Subscribe the webhook to the projects you want to watch (one webhook per project) and TaskJuice verifies each incoming POST against the shared-secret URL you configured when registering the webhook in Basecamp.

Actions

  • basecamp/list-projects lists active Basecamp projects for the connected account. Pass an optional status filter to list archived or trashed projects instead.
  • basecamp/create-todo creates a to-do inside a chosen to-do list, with optional description, assignees, completion subscribers, due date, and start date.
  • basecamp/get-todo fetches a single to-do by ID, including its title, description, completion state, and project URL.
  • basecamp/create-message posts a message to a project's message board, with optional category and draft status.

Known limitations

  • Basecamp signs webhook bodies with neither HMAC nor a signature header, so the integration verifies inbound POSTs by requiring an Authorization header value that matches the shared secret you embed when registering the webhook URL in Basecamp. Pick a long, random secret per webhook to keep verification meaningful.
  • Basecamp's REST API is account-tenanted, not user-tenanted. Every action depends on the account ID you provide at connect time. If the connected user later loses access to the account, every action returns a 403 and TaskJuice surfaces it as a non-retryable authorization error so you can reconnect with a user who still has access.
  • Basecamp enforces a rolling rate limit of 50 requests per 10 seconds per access token. When a 429 is returned, TaskJuice surfaces it as a retryable rate-limit error and respects Basecamp's recommended backoff.
  • Webhooks must be created per project via POST /buckets/{project_id}/webhooks.json. There is no account-wide subscription, so add a fresh webhook for every project you want the trigger to fire on.
Was this helpful?
Basecamp integration | TaskJuice Docs