Reference · built on requestConnectorWork & ticket management

Basecamp

To-dos, to-do lists, message boards, schedules, and comments from Basecamp accounts through the Basecamp API.

About

Basecamp is 37signals' project management product. An account holds projects, and each project holds to-do lists, a message board, a schedule, a Campfire chat, card tables, and documents. The API serves JSON only from 3.basecampapi.com/{account_id}/ and requires OAuth 2.0 plus a User-Agent header that names your app and a contact address.

Through Fibric, an operator reads to-dos, comments, and schedule entries, receives webhooks for the recording types you choose, and proposes a new to-do, a completion, or a comment. Approved changes are applied once, and each leaves a receipt: what changed, why, and how to undo it.

This is a reference listing. It documents what Fibric would read from Basecamp and what it could propose, based on the vendor's published interfaces. Fibric builds it under a managed deployment when you request it; selecting it here installs nothing.

Inputs

  • To-dos through GET /todolists/{id}/todos.json; the default returns active, pending to-dos, with status archived or trashed and completed=true as filters
  • To-do lists, to-do sets, and to-do list groups inside a project bucket
  • Messages on a project's message board, and the message types the account defines
  • Schedule entries on a project schedule
  • Comments on any recording that carries comments_count and comments_url, through GET /recordings/{id}/comments.json
  • Webhooks per project through POST /buckets/{id}/webhooks.json for types such as Todo, Todolist, Message, Comment, Schedule::Entry, and Kanban::Card
  • People, my assignments, and my notifications for the authorizing user

Proposed actions

  • Target capability: propose a new to-do through POST /todolists/{id}/todos.json with content, assignee_ids, due_on, and notify
  • Target capability: propose completing or reopening a to-do through POST or DELETE /todos/{id}/completion.json
  • Target capability: propose a comment on a recording through POST /recordings/{id}/comments.json
  • Target capability: propose changing a to-do's content, description, assignees, or due_on through PUT /todos/{id}.json

Proposed actions are target capabilities. Every action runs propose-first and needs a validated deployment and the appropriate permissions.

What you can build

  • Chase a to-do past its due date

    The operator reads open to-dos whose due_on has passed and proposes a comment to the assignee, or a new due date, for your approval.

    With Action Follow-up

  • Turn a support escalation into a to-do

    When a ticket needs engineering, the operator proposes a to-do on the right list with the ticket summary and link, assigned to the person on duty.

    With Escalation Packet, Ticket Triage

  • Keep the weekly review honest

    The operator lists completions and new to-dos across projects since the last review and drafts the summary with each item's app_url.

    With Weekly Review

Requirements

  • A Basecamp account and its numeric account id, discovered through GET https://launchpad.37signals.com/authorization.json
  • An app registered at launchpad.37signals.com/integrations with a client_id, client_secret, and redirect_uri
  • A User-Agent header naming your app and a contact email or URL; requests without one return 400 Bad Request
  • An HTTPS payload URL for webhooks; Basecamp returns 400 for a payload_url that is not HTTPS
Authentication
OAuth 2.0 web_server flow through launchpad.37signals.com, with a client_id and client_secret from an app registered at launchpad.37signals.com/integrations; access tokens last two weeks and refresh tokens renew them.

Limits

  • The first rate limit is 50 requests per 10 seconds per IP address; Basecamp answers 429 Too Many Requests with Retry-After
  • Webhooks are created per project, not per account, and Basecamp deactivates a webhook after 10 failed delivery attempts
  • Pagination is geared: 15 results on page 1, 30 on page 2, 50 on page 3, then 100; follow the Link header, never build URLs
  • The API is not compatible with the Basecamp Classic or Basecamp 2 APIs

Access and pricing

Reference listing. Fibric builds the connector under a managed deployment when you request it. Your quote covers the build, capabilities, usage, and support.

Request Basecamp ↗

Questions and answers

Does Basecamp send webhooks for to-do changes?
Yes. A webhook is created per project through POST /buckets/{id}/webhooks.json with an HTTPS payload_url and a list of types such as Todo, Todolist, Comment, or Message. Each delivery carries a kind such as message_created, the recording, and the creator. Basecamp retries up to 10 times before deactivating the webhook.
What happens when the connector hits the rate limit?
Basecamp returns 429 Too Many Requests with a Retry-After header giving the seconds to wait. The documented first limit is 50 requests per 10 seconds per IP address. The connector waits the stated time and paces history loads by following the Link header page by page.
How does the connector know which account to use?
After OAuth, GET https://launchpad.37signals.com/authorization.json lists the accounts the token can reach, each with product bc3, an id, a name, and an href. The connector uses that id as the account segment in https://3.basecampapi.com/{account_id}/.
Ask about Basecamp

Ask about the capabilities and requirements in this listing.

For project-specific requirements, contact Fibric.