---
title: Basecamp API Integration on Truto
slug: basecamp
category: Ticketing
canonical: "https://truto.one/integrations/detail/basecamp/"
---

# Basecamp API Integration on Truto



**Category:** Ticketing  
**Status:** Generally available

## Unified APIs

### Unified User Directory API

- **Users** — The User object represents a User.

### 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.
- **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.
- **Ticket Status** — Ticket Status represents the completion level of the Ticket. Some products provide customizing the Ticket Status.
- **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.
- **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.

### Unified Search API

- **Search** — Search endpoint for all the apps.

## MCP-ready AI tools

Truto exposes 105 tools for Basecamp that AI agents can call directly.

- **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.

## How it works

1. **Link your customer's Basecamp account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Basecamp.** The Proxy API is a 1-to-1 mapping of the Basecamp API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **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.
- **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.
- **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.
- **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.
- **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

- **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.
- **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.
- **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.
- **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.
- **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.
- **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.

## FAQs

### 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.

## Related reading

- [Connect Basecamp to Claude: Sync Documentation & Project Schedules via MCP](https://truto.one/blog/connect-basecamp-to-claude-sync-documentation-project-schedules/) — Learn how to connect Basecamp to Claude using a managed MCP server. Automate task delegation, sync project schedules, and manage team communication.
- [Connect Basecamp to ChatGPT: Manage Tasks & Team Communication via MCP](https://truto.one/blog/connect-basecamp-to-chatgpt-manage-tasks-team-communication/) — Learn how to connect Basecamp to ChatGPT using a managed MCP server. Automate task creation, sync project communication, and manage workflows with AI.
- [Connect Basecamp to AI Agents: Automate Workflows & Client Approvals](https://truto.one/blog/connect-basecamp-to-ai-agents-automate-workflows-client-approvals/) — Learn how to connect Basecamp to AI agents using Truto's /tools endpoint. Build autonomous project management workflows using LangChain, LangGraph, or CrewAI.
