Skip to content

Ticketing

Basecamp
API integration

Ship Ticketing features without building the integration. Full Basecamp API access via Proxy, normalized data through Unified APIs, and 100+ MCP-ready tools for AI agents — all extensible to your exact use case.

Talk to us
Basecamp

Use Cases

Why integrate with Basecamp

Common scenarios for SaaS companies building Basecamp integrations for their customers.

01

Escalate support tickets into Basecamp projects

Support SaaS products can let agents push bug reports or feature requests directly into Basecamp as to-dos or card table cards, with full context attached. Bidirectional comment sync via webhooks keeps agents informed when engineering resolves the issue.

02

Automate project provisioning from deal close

CRM or proposal tools can automatically create Basecamp projects from templates when a deal is won, populate them with onboarding to-do lists, and upload signed contracts — eliminating manual project setup for agencies and service teams.

03

Sync task data for time tracking and billing

Time-tracking and billing SaaS products can pull Basecamp to-dos and card table cards so users can log hours against specific tasks, then post time entries back as comments on the corresponding Basecamp items.

04

Surface project status in client-facing dashboards

Agency analytics and reporting platforms can pull Basecamp projects, to-do completion data, and client approvals to display real-time project health and pending action items in a unified client portal.

05

Route deployment alerts and release notes to Basecamp

CI/CD and DevOps tools can post formatted release notes to Basecamp message boards on successful deploys, or fire immediate alerts into Campfire chat rooms when builds fail — keeping non-technical stakeholders in the loop without leaving Basecamp.

What You Can Build

Ship these features with Truto + Basecamp

Concrete product features your team can ship faster by leveraging Truto’s Basecamp integration instead of building from scratch.

01

Two-way ticket sync with Basecamp to-dos and cards

Map your product's tickets to Basecamp to-dos or card table cards using the Unified Ticketing API, with bidirectional comment sync and status updates powered by Basecamp webhooks.

02

Automated project and to-do list scaffolding

Create Basecamp projects from templates and populate them with to-do lists and individual to-dos programmatically when triggered by events in your product.

03

Kanban board mirroring via Card Tables

Sync your product's workflow stages to Basecamp card table columns and cards, letting users manage work in either system while keeping both in sync.

04

Real-time event ingestion with webhooks

Register Basecamp webhooks to listen for to-do completions, new comments, or project changes and reflect those updates instantly in your product.

05

Team chat notifications via Campfire

Post automated alerts, summaries, or status updates directly into a Basecamp Campfire chat room using campfire line creation, keeping teams informed without creating noise in their to-do lists.

06

File and document attachment to tasks

Push files into Basecamp vaults or attach uploads and documents to specific projects, giving users a seamless way to keep deliverables alongside their tasks.

SuperAI

Basecamp AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

list_all_basecamp_people

Get all people visible to the current user in Basecamp. Returns fields including id, name, email_address, title, bio, location, admin status, employee status, time_zone, avatar_url, and company details.

get_single_basecamp_person_by_id

Get person profile by id in Basecamp. Returns id, name, email_address, personable_type, title, created_at, updated_at, admin, owner, client, employee, time_zone, avatar_url, can_manage_projects, and can_manage_people fields.

list_all_basecamp_projects

Get all active projects visible to the current user in Basecamp. Returns project id, status, created_at, updated_at, name, description, purpose, clients_enabled, bookmark_url, url, app_url, dock details, and bookmarked status.

get_single_basecamp_project_by_id

Get a project by id in Basecamp. Returns id, status, created_at, updated_at, name, description, purpose, clients_enabled, bookmark_url, url, app_url, and dock array with current tools and their enabled status and URLs.

create_a_basecamp_project

Create a new project in Basecamp with name and description. Returns the created project's JSON representation. Note: Free accounts have a project limit and will receive a 507 error if exceeded.

update_a_basecamp_project_by_id

Update a project with id in Basecamp. Requires name. Returns the updated project's name, description, admissions, and schedule_attributes including start_date and end_date if provided.

delete_a_basecamp_project_by_id

Trash a project by id in Basecamp. Marks the project as trashed and it will be deleted after 30 days. Returns 204 No Content if successful.

list_all_basecamp_todos

Get active to-dos for bucket_id and todolist_id in Basecamp. Returns fields including id, status, title, created_at, updated_at, completed, description, content, and assignees.

get_single_basecamp_todo_by_id

Get a to-do in Basecamp by bucket_id and id. Returns id, status, title, creator info, completion status, assignees, and URLs for the to-do.

create_a_basecamp_todo

Create a to-do in Basecamp under bucket 1 and todolist 3 with required content. Returns the to-do's id, content, description, due_on, starts_on, assignee_ids, and completion_subscriber_ids.

update_a_basecamp_todo_by_id

Update a to-do in Basecamp with bucket_id and id. Requires all existing parameters including content, description, assignee_ids, completion_subscriber_ids, notify, due_on, and starts_on. Returns the updated to-do representation.

delete_a_basecamp_todo_by_id

Trash a recording by marking it as trashed in Basecamp. Requires bucket_id and id. Returns 204 No Content if successful.

list_all_basecamp_todo_lists

Get active to-do lists for bucket_id and todoset_id in Basecamp. Returns fields including id, status, title, creator, completed, completed_ratio, and URLs for todos and comments.

get_single_basecamp_todo_list_by_id

Get a to-do list by bucket_id and id in Basecamp. Returns fields including id, status, title, created_at, updated_at, completed, completed_ratio, description, and URLs for todos and groups.

create_a_basecamp_todo_list

Create a to-do list with name in Basecamp under bucket_id and todoset_id. Returns the to-do list including id, name, and description.

update_a_basecamp_todo_list_by_id

Update a to-do list with id in the project bucket_id in Basecamp. Requires name and description parameters. Returns the updated to-do list representation including name and description fields.

list_all_basecamp_comments

Get comments for a recording in Basecamp using bucket_id and recording_id. Returns comment id, status, visibility, timestamps, title, type, URLs, parent message info, bucket info, creator details, and content.

get_single_basecamp_comment_by_id

Get a comment by id and bucket_id in Basecamp. Returns id, status, visible_to_clients, created_at, updated_at, title, type, url, parent message info, bucket project info, creator details, and content.

create_a_basecamp_comment

Create a comment with content in Basecamp under the recording with recording_id in the project with bucket_id. Returns the created comment including its content and metadata.

update_a_basecamp_comment_by_id

Update a comment content in Basecamp using bucket_id and id. Returns the updated comment with fields such as content and id.

list_all_basecamp_deleted_people

Use this endpoint to retrieve a list of people who have been deleted from the account. It returns information about users who were removed but still have records stored in the system for reference or auditing purposes

list_all_basecamp_card_tables

Get a card table by bucket_id and id in Basecamp. Returns fields including id, status, title, type, url, creator details, subscribers, and lists with their cards count and URLs.

list_all_basecamp_card_table_columns

Get a card table column by id and bucket_id in Basecamp. Returns id, status, title, type, creator info, bucket info, cards_count, and URLs for the column.

create_a_basecamp_card_table_column

Create a column in the card table with card_table_id in the project with project_id in Basecamp. Requires title. Returns the created column's id, title, and description.

update_a_basecamp_card_table_column_by_id

Update a column in Basecamp with bucket_id and id. Returns the updated column's JSON representation including title and description.

list_all_basecamp_card_table_cards

Get cards in a column in Basecamp using bucket_id and list_id. Returns card id, status, title, creator info, description, completion status, and URLs for card and comments.

get_single_basecamp_card_table_card_by_id

Get a card in Basecamp by bucket_id and id. Returns id, status, title, description, creator info, parent column, bucket project, comments_count, and steps details.

create_a_basecamp_card_table_card

Create a card in Basecamp within the card table list identified by bucket_id and list_id. Requires title. Returns the created card with fields including title, content, due_on, and notify status.

update_a_basecamp_card_table_card_by_id

Update a card in Basecamp with project_id and id. Returns the updated card including title, content, due_on, and assignee_ids fields.

list_all_basecamp_attachments

Use this endpoint to retrieve a list of all attachments across projects in the account. It returns metadata about uploaded files, such as filenames, URLs, content types, and associated projects or messages.

list_all_basecamp_campfires

Get a list of all active Campfires visible to the current user in Basecamp. Returns fields including id, status, title, created_at, updated_at, url, bucket info, and creator details.

get_single_basecamp_campfire_by_id

Get a Campfire by id in Basecamp. Returns id, status, title, creator details, bucket info, and URLs for app, bookmark, subscription, and lines.

list_all_basecamp_campfire_lines

Get Campfire lines for bucket_id and chat_id in Basecamp. Returns id, status, visible_to_clients, created_at, updated_at, title, type, url, parent info, bucket info, creator info, and content fields.

get_single_basecamp_campfire_line_by_id

Get a Campfire line by bucket_id, chat_id, and id in Basecamp. Returns id, status, visibility, timestamps, title, type, URLs, parent chat info, bucket info, creator details, and content.

create_a_basecamp_campfire_line

Create a Campfire line with content in Basecamp. Requires project ID 1 and campfire ID 2. Returns the created line's JSON representation including content and metadata.

delete_a_basecamp_campfire_line_by_id

Delete a Campfire line by project_id, campfire_id, and id in Basecamp. Returns 204 No Content if successful.

create_a_basecamp_card_table_step

Create a step with title in the card with id in the project bucket_id in Basecamp. Returns the created step including title, due_on, and assignees.

update_a_basecamp_card_table_step_by_id

Update a step in Basecamp with bucket_id and id. Returns the updated step including title, due_on, and assignees fields.

list_all_basecamp_chatbots

Get all chatbots for the chat identified by bucket_id and chat_id in Basecamp. Returns id, created_at, updated_at, service_name, command_url, url, app_url, and lines_url for each chatbot.

get_single_basecamp_chatbot_by_id

Get a chatbot in Basecamp. Requires bucket_id, chat_id, and id. Returns id, created_at, updated_at, service_name, command_url, url, app_url, and lines_url fields in the response.

create_a_basecamp_chatbot

Create a chatbot with service_name on the Basecamp account. Returns the new chatbot including the lines URL from the project with ID 1.

update_a_basecamp_chatbot_by_id

Update a chatbot with id in Basecamp by changing its service_name. Returns the updated chatbot JSON representation including service_name and command_url fields.

delete_a_basecamp_chatbot_by_id

Delete a chatbot by id in Basecamp within the specified bucket_id. Returns 204 No Content on success.

list_all_basecamp_client_approvals

Get a list of client approvals for the project with bucket_id in Basecamp. Returns fields including id, status, title, created_at, updated_at, approval_status, and approver details.

get_single_basecamp_client_approval_by_id

Get client approval by id in Basecamp. Returns fields including id, status, title, created_at, updated_at, approval_status, creator details, approver details, content, and responses.

list_all_basecamp_client_correspondences

Get client correspondences for bucket_id in Basecamp. Returns id, status, visible_to_clients, created_at, updated_at, title, type, url, parent info, bucket info, creator details, content, subject, replies_count, and replies_url.

get_single_basecamp_client_correspondence_by_id

Get client correspondence by id and bucket_id in Basecamp. Returns id, status, title, content, creator info, created_at, updated_at, subject, replies_count, and URLs.

list_all_basecamp_client_replies

Get a list of client replies for the project identified by bucket_id and the recording identified by recording_id in Basecamp. Returns id, status, title, created_at, updated_at, content, and creator details.

get_single_basecamp_client_reply_by_id

Get a client reply by id for the recording with recording_id in the project with bucket_id in Basecamp. Returns id, status, visible_to_clients, created_at, updated_at, title, type, url, parent info, bucket info, creator info, and content.

update_a_basecamp_client_visibility_by_id

Toggle client visibility for the recording with id in the project with bucket_id in Basecamp. Requires visible_to_clients parameter. Returns the current recording JSON representation. Some recordings inherit visibility and cannot be toggled.

list_all_basecamp_documents

Get a list of active documents in the project with bucket_id and vault with vault_id in Basecamp. Returns document id, status, title, creator info, content, and URLs.

get_single_basecamp_document_by_id

Get a document by id in Basecamp specifying bucket_id and id. Returns fields including id, status, title, created_at, updated_at, content, creator, parent, bucket, and URLs for access.

create_a_basecamp_document

Create a document with title and content in Basecamp under bucket_id and vault_id. Returns the created document including its id, title, content, and status.

update_a_basecamp_document_by_id

Update a document's title and content in Basecamp using bucket_id and id. Returns the updated document with fields like title and content.

list_all_basecamp_events

Get a list of events for the recording with recording_id in the project with bucket_id in Basecamp. Returns event id, recording_id, action, details, created_at, and creator info including id, name, email_address, title, and company.

list_all_basecamp_forwards

Get a list of active forwards for the project with bucket_id and inbox_id in Basecamp. Returns fields including id, status, title, created_at, updated_at, content, subject, from, and creator details.

get_single_basecamp_forward_by_id

Get a forward in Basecamp by bucket_id and id. Returns fields including id, status, title, content, subject, from, replies_count, and creator details.

list_all_basecamp_inbox_replies

Get inbox replies for bucket_id and inbox_forward_id in Basecamp. Returns id, status, visible_to_clients, created_at, updated_at, title, type, url, parent info, bucket info, creator info, and content fields.

get_single_basecamp_inbox_reply_by_id

Get inbox reply by id for the forward with parent_id in the project bucket_id in Basecamp. Returns id, status, visible_to_clients, created_at, updated_at, title, type, url, parent, bucket, creator, and content fields.

list_all_basecamp_inbox

Get inbox details for bucket_id and id in Basecamp. Returns id, status, title, creator info, forwards_count, and URLs.

create_a_basecamp_lineup_maker

Create a marker with name and date in Basecamp. Requires name and date (ISO8601 without time). Returns 201 Created with empty response body.

update_a_basecamp_lineup_maker_by_id

Update a marker's name and/or date by id in Basecamp. Returns 200 OK with an empty response body.

delete_a_basecamp_lineup_maker_by_id

Destroy a marker by id in Basecamp. This operation permanently deletes the marker and returns 204 No Content.

list_all_basecamp_message_boards

Get message board for project bucket_id and id in Basecamp. Returns id, status, title, creator info, messages_count, and URLs for the message board.

list_all_basecamp_message_types

Get list of all message types for a project in Basecamp using bucket_id. Returns id, name, icon, created_at, and updated_at fields for each message type.

get_single_basecamp_message_type_by_id

Get message type with id in Basecamp. Returns id, name, icon, created_at, and updated_at fields.

create_a_basecamp_message_type

Create a message type with name and icon in Basecamp. Requires bucket_id, name, and icon. Returns the created message type's JSON representation.

update_a_basecamp_message_type_by_id

Update a message type with id in the project identified by bucket_id in Basecamp. Returns the updated message type including name and icon fields.

delete_a_basecamp_message_type_by_id

Delete a message type with id in the bucket identified by bucket_id in Basecamp. Returns 204 No Content if successful.

list_all_basecamp_messages

Get a list of active messages for bucket_id and message_board_id in Basecamp. Returns fields including id, status, title, created_at, updated_at, url, comments_count, content, and subject.

get_single_basecamp_message_by_id

Get a message by id and bucket_id in Basecamp. Returns id, status, title, content, creator info, comments_count, and URLs related to the message.

create_a_basecamp_message

Create a message with subject and status in Basecamp under bucket_id and message_board_id. Returns the created message including id, subject, content, status, and subscriptions.

update_a_basecamp_message_by_id

Update a message in Basecamp with project_id and id. Returns the updated message including subject, content, and category_id fields.

delete_a_basecamp_message_by_id

Delete pin on message with id in project with project_id in Basecamp. Unpins the specified message.

list_all_basecamp_question_answers

Get a list of answers for the question with id in the project bucket_id in Basecamp. Returns fields including id, status, title, creator info, content, and timestamps.

get_single_basecamp_question_answer_by_id

Get a question answer by bucket_id and id in Basecamp. Returns fields including id, status, title, content, creator details, parent question, bucket info, and timestamps.

list_all_basecamp_questionnaires

Get questionnaire by id for project with id in Basecamp. Returns id, status, title, created_at, updated_at, bucket info, creator info, questions_count, and questions_url.

list_all_basecamp_questions

Get a list of questions for the project identified by bucket_id and the questionnaire identified by questionnaire_id in Basecamp. Returns fields including id, status, title, creator, schedule, and answers_count.

get_single_basecamp_question_by_id

Get a question by id and bucket_id in Basecamp. Returns fields including id, status, title, creator details, schedule, and answers_count.

list_all_basecamp_recordings

Get a list of recordings filtered by type in Basecamp. Requires type parameter which must be one of Comment, Document, Message, Question::Answer, Schedule::Entry, Todo, Todolist, Upload, or Vault. Returns recordings with details such as id, content, and timestamps.

list_all_basecamp_schedule_entries

Get active schedule entries for schedule with id in Basecamp. Returns fields including id, status, title, starts_at, ends_at, creator, description, and participants.

get_single_basecamp_schedule_entry_by_id

Get a schedule entry by bucket_id and id in Basecamp. Returns fields including id, status, title, description, starts_at, ends_at, participants, and creator details.

create_a_basecamp_schedule_entry

Create a schedule entry in Basecamp with required parameters summary, starts_at, and ends_at. Returns the created schedule entry including id, summary, starts_at, ends_at, description, participant_ids, all_day, and notify fields.

update_a_basecamp_schedule_entry_by_id

Update a schedule entry with id in the project identified by bucket_id in Basecamp. Returns the updated schedule entry including summary, starts_at, ends_at, and all_day fields.

get_single_basecamp_schedule_by_id

Get schedule for a project using bucket_id and id. Returns fields including id, status, title, url, bucket info, creator details, and entries_count.

update_a_basecamp_schedule_by_id

Update a schedule with id in Basecamp by setting include_due_assignments to specify if due dates from to-dos, cards, and steps should be included. Returns the updated schedule JSON on success.

list_all_basecamp_templates

Get a list of active Templates visible to the current user in Basecamp. Returns fields including id, status, created_at, updated_at, name, description, url, app_url, and dock details.

get_single_basecamp_template_by_id

Get a Template by id in Basecamp. Returns id, status, created_at, updated_at, name, description, url, app_url, and dock array with details of associated resources.

create_a_basecamp_template

Create a new Template in Basecamp with name and optionally description. Returns the created Template's JSON representation. Note: Free subscription accounts may receive 507 Insufficient Storage error.

update_a_basecamp_template_by_id

Update a Template's name and description in Basecamp using id. Returns the updated Template representation on success.

delete_a_basecamp_template_by_id

Trash a template by id in Basecamp. Marks the template as trashed and it will be deleted after 30 days. Returns 204 No Content if successful.

get_single_basecamp_todo_set_by_id

Get to-do set for a project in Basecamp using bucket_id and id. Returns id, status, title, creator info, completed status, completed_ratio, todolists_count, and URLs for the to-do set.

list_all_basecamp_uploads

Get a list of active uploads in the project specified by bucket_id and vault specified by vault_id in Basecamp. Returns fields including id, status, title, url, creator info, description, content_type, byte_size, filename, and dimensions.

get_single_basecamp_upload_by_id

Get upload details by bucket_id and id in Basecamp. Returns id, status, title, url, creator info, description, content_type, byte_size, filename, download_url, width, and height.

create_a_basecamp_upload

Create an upload in Basecamp under a specific project and vault. Requires project_id, vault_id, and attachable_sgid. Returns id, name, and url fields for the created upload in the response.

update_a_basecamp_upload_by_id

Update an upload's description and base_name in Basecamp. Requires bucket_id and id. Returns the updated upload including its description and base_name.

list_all_basecamp_vaults

Get a paginated list of vaults in the vault with id in the project specified by bucket_id in Basecamp. Returns fields including id, status, title, creator, documents_count, uploads_count, and URLs for related resources.

get_single_basecamp_vault_by_id

Get a vault by id in Basecamp specifying bucket_id and id. Returns id, status, title, creator info, counts of documents, uploads, vaults, and URLs for related resources.

create_a_basecamp_vault

Create a vault in Basecamp under the vault with id in the project with project_id. Requires title. Returns the created vault with its details.

update_a_basecamp_vault_by_id

Update a vault title in Basecamp using bucket_id and id. Returns the updated vault with fields like id, title, and other vault details.

list_all_basecamp_webhooks

Get all webhooks for a specific bucket in Basecamp. Requires bucket_id. Returns webhook id, active status, created_at, updated_at, payload_url, types, url, and app_url fields.

get_single_basecamp_webhook_by_id

Get a webhook by id in Basecamp for the project identified by bucket_id. Returns webhook details including id, active status, payload_url, types, and recent_deliveries array with the 25 most recent delivery exchanges.

create_a_basecamp_webhook

Create a webhook in Basecamp for bucket_id with payload_url. Returns the created webhook including payload_url and types fields.

update_a_basecamp_webhook_by_id

Update a webhook in Basecamp with bucket_id and id. Requires payload_url to set the HTTPS callback URL. Returns the updated webhook's payload_url, types, and active status.

delete_a_basecamp_webhook_by_id

Delete a webhook by id in Basecamp. Requires bucket_id and id. Returns 204 No Content on success.

Why Truto

Why use Truto’s MCP server for Basecamp

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 650+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

Unified APIs

Unified APIs for Basecamp

Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.

Unified User Directory API

Users

The User object represents a User.

View Docs

Unified Ticketing API

Collections

Tickets and contacts can be grouped into Collections. Collection resource usually maps to the various grouping systems used in the underlying product. Some examples are lists, projects, epics, etc. You can differentiate between these grouping systems using the type attribute of a Collection.

View Docs

Comments

Comments represent the communication happening on a Ticket, both between a User and a Contact and the internal things like notes, private comments, etc. A Ticket can have one or more Comments.

View Docs

Ticket Status

Ticket Status represents the completion level of the Ticket. Some products provide customizing the Ticket Status.

View Docs

Tickets

Core resource which represents some work that needs to be carried out. Tickets are usually mapped to issues, tasks, work items, etc. depending on the underlying product.

View Docs

Workspaces

Workspaces represent the top-level subdivision in a ticketing system. They usually have their own set of settings, tickets, statuses, priorities and users. Some of the usual terminologies used by the products for the top-level subdivision are projects, bases, spaces, workspace, etc. A Workspace could belong to an Organization.

View Docs

Unified Search API

Search

Search endpoint for all the apps.

View Docs

How It Works

From zero to integrated

Go live with Basecamp in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Basecamp account

Use Truto’s frontend SDK to connect your customer’s Basecamp account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Basecamp

Truto’s Proxy API is a 1-to-1 mapping of the Basecamp API. You call us, we call Basecamp, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Basecamp’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Basecamp on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

What authentication method does the Basecamp integration use?

Basecamp uses OAuth 2.0 for authentication. Truto handles the full OAuth flow, token storage, and automatic refresh so your end users can connect their Basecamp accounts without you managing credentials.

How does Basecamp's data hierarchy map to the Unified Ticketing API?

Basecamp Projects map to Workspaces, To-do Lists and Card Table Columns map to Collections, and individual To-dos and Card Table Cards map to Tickets. Comments map directly to Comments in the unified model.

Can I sync both to-dos and card table cards as tickets?

Yes. The integration exposes both Basecamp to-dos and card table cards. Through the Unified Ticketing API, both are accessible as Tickets, and you can create, read, update, and delete either type.

Does the integration support real-time updates from Basecamp?

Yes. You can use the webhook endpoints (create, list, get, update, delete) to register webhooks on Basecamp projects and receive real-time event notifications for changes like to-do completions or new comments.

What operations are supported beyond basic CRUD on tickets?

Beyond to-dos and cards, the integration supports projects, templates, comments, message boards, messages, campfire lines, documents, uploads, vaults, schedule entries, client approvals, and more — covering the full breadth of Basecamp's collaboration features.

How does Truto handle Basecamp's pagination and rate limits?

Truto manages pagination automatically across all list endpoints, so you receive complete result sets without writing pagination logic. Rate limit handling, including retries and backoff, is built into the platform.

Basecamp

Get Basecamp integrated into your app

Our team understands what it takes to make a Basecamp integration successful. A short, crisp 30 minute call with folks who understand the problem.

Talk to us