---
title: "Basecamp Integration"
description: "Basecamp is 37signals' project management and team communication tool. Agents post messages, create and update to-dos, manage card tables, docs, files, schedules and Campfire chat, and start flows from Basecamp events across every project."
url: https://flowrunner.ai/integrations/basecamp
date_modified: 2026-09-04T14:21:17-07:00
---

# Basecamp

[Project Management](https://flowrunner.ai/integrations/category/project-management-productivity)

Basecamp is 37signals' project management and team communication tool. Agents post messages, create and update to-dos, manage card tables, docs, files, schedules and Campfire chat, and start flows from Basecamp events across every project.

1 trigger · 251 actions · OAuth · available

[Basecamp website](https://integrate.37signals.com/) · [Platform Documentation](https://github.com/basecamp/bc3-api) · Capability data verified 2026-08-18

1.  A milestone to-do is completed on a client project
2.  Get Project Timeline and Everything: Completed To-Dos gather what actually finished since the last update
3.  Agent reads each referenced item to see what the client can already see on this project
4.  Create Message writes the update to the project's message board with a drafted status, notifying nobody
5.  Agent lists the items in the draft that are currently internal only
6.  Agent posts the draft and that list to the account lead
7.  The account lead publishes the message and decides which internal items become client visible

## What This Integration Enables

Basecamp's design has one consequence that changes how you build agents on it, and it is worth stating before anything else. Almost nothing here is destroyed. There is no delete route for a message, a to-do, a card or a document. Trash Recording moves things to the trash and Basecamp purges them on its own schedule about a month later, and Unarchive Recording brings them back before then. So the operations that look dangerous on other connectors are unusually forgiving here, and the genuinely irreversible ones are the operations that publish: a message that leaves the drafted state and notifies a project, and above all anything that crosses the wall between the team's conversation and the client's view of it.

FlowRunner agents work with that grain rather than against it. They build projects from templates when engagements start, keep to-dos and card tables in step with the systems where work originates, log time against recordings, read the account-wide Everything views to answer what is overdue or unassigned without walking projects one at a time, and draft messages that a person publishes. Basecamp itself ships the dry run in the drafted status, and FlowRunner's [human-in-the-loop](https://flowrunner.ai/concepts/human-in-the-loop) step uses it. Every action is built and verified against the Basecamp API.

### Without FlowRunner

**Updates assembled from scrollback**: Someone rereads a week of to-dos and Campfire to work out what to tell the client

**Visibility decided in the moment**: Whether a document is client-facing is settled by whoever posts it, without a second read

**Project setup repeated per engagement**: The same tool list, to-do lists and folders are recreated by hand for every new client

### With FlowRunner

**Updates drafted from the record**: The completed work is gathered from the project's own timeline and written as a draft nobody has been notified about

**Visibility is an explicit decision**: Anything crossing into the client's view arrives as a named list for one person to approve

**Setup runs from a template**: New projects are built from the template with their tools, lists and access already in place

## Use Case Scenarios

### Engagement kickoff from a template

A deal closes in [HubSpot](https://flowrunner.ai/integrations/hubspot). The agent calls Create Project From Template, then polls Get Project Construction until the finished project appears, because Basecamp builds a templated project in the background rather than instantly. Once it exists, Get Project returns the dock, which is the only place the ids of the project's message board, to-do set, schedule, card table and vault appear, so everything after this point works from that one read. Update Project Access invites the client contacts and grants the internal team, Create Todolist fills in the engagement plan, and Create Message posts the kickoff note. The client sees a project that looks prepared, because it was.

### One question answered across every project

The operations lead wants to know what is overdue and what nobody owns, across the whole account. Rather than walking each project, the agent calls Everything: Overdue To-Dos, Everything: Unassigned To-Dos, Everything: Overdue Cards and Everything: Unassigned Cards, which each answer for every project the connection can see. It pairs that with Get Overdue Todos Report and List Assignable People to attribute the work, then writes the summary to a sheet in [Google Sheets](https://flowrunner.ai/integrations/google-sheets) and posts the exceptions to [Slack](https://flowrunner.ai/integrations/slack). Anything that has been unassigned for longer than a threshold is raised by name rather than counted.

### Email and chat that land where the work is

Client mail forwarded into a project's inbox is read with List Forwards, and the agent turns an actionable one into a to-do with Create Todo, notifying the assignee deliberately rather than by default. Where a thread in [Gmail](https://flowrunner.ai/integrations/gmail-service) contains a decision, Create Comment attaches it to the recording it belongs to so the context sits on the work rather than in somebody's inbox. Build and incident notifications post into the project's chat with Create Campfire Line. When the team needs a recurring status without a meeting, Create Question sets up an automatic check-in and List Answers collects what people said.

## Human-in-Loop Highlight

Basecamp's most consequential operation is not a delete, because Basecamp barely deletes. It is Set Client Visibility. Every project with clients on it has a wall down the middle, and that operation moves a recording across it. A to-do, a document or a message that has been internal all week becomes something the customer can read, and no amount of trashing it afterwards unreads it. The thirty day trash window that makes everything else here recoverable offers nothing at all against a client having already seen the thing. So the update agent drafts, and then stops. It writes the message with Create Message in the drafted state, which notifies nobody, and posts: "Week 6 update is drafted on Harbour Redesign. It references four completed items. Three are already client visible. The fourth is the scope note where we recorded the estimate overrun, currently internal. Publish the message as written and make the scope note visible, publish without it, or send me an edit?" The account lead answers. The agent publishes exactly that, and calls Set Client Visibility only on what was named. The drafting was the agent's work. Deciding what the customer reads was not.

Agent processes routinely

Detects exception requiring judgment

Clear match Continues automatically

Ambiguous Routes to human via preferred channel

Human decides

Agent resumes with decision

## Agent Capabilities

251 actions

### Account and Projects

14

-   **Get Authorized Accounts** Returns the Basecamp accounts this connection can reach, with the numeric id each one needs. Run first, because every other operation is scoped to an account and one token often reaches several.
-   **List Projects** Returns the account's projects, active by default. Each project carries a dock listing the tools turned on in it, and those dock entries are where the message board, to-do set, schedule and card table ids come from.
-   **Get Project** Returns one project with its dock. The dock is the only place a project's tool ids appear, so most other flows start here.
-   **Create Project** Adds a project with the standard tools turned on. The response dock carries their ids.
-   **Update Project** Changes a project. Basecamp requires the name even when only the description is changing, so a flow passes the existing name through.
-   **Trash Project** Moves a project to the trash. This is not a delete: Basecamp keeps trashed projects and purges them itself later, and until then the project can be brought back.
-   **Archive Project** Archives a project, which takes it out of the way while keeping everything in it readable.
-   **Unarchive Project** Brings a project back to active, from either archived or trashed.
-   **Get Project Timeline** Returns a project's timeline, which is the run of everything that has happened in it, most recent first. The read a status summary is assembled from.
-   **List Folders** Returns the folders projects are filed into on the account's home page.
-   **Get Folder** Returns one folder and the projects filed into it.
-   **Create Folder** Adds a folder and optionally files projects into it.
-   **Update Folder** Renames a folder. Unlike creation, a blank name is refused here rather than defaulted.
-   **Delete Folder** Removes a folder. The projects filed in it are unfiled rather than deleted.

### To-Dos

19

-   **Get Todoset** Returns a project's to-do set, which is the container all its to-do lists sit in.
-   **List Todolists** Returns the to-do lists in a to-do set. Active ones only by default.
-   **Get Todolist** Returns one to-do list, or one to-do list group. Basecamp serves both from the same path, and the response type says which.
-   **Create Todolist** Adds a to-do list to a to-do set, which is how a phase of work gets its own container.
-   **Update Todolist** Changes a to-do list or a group. The name is required even when only the description is changing.
-   **List Todolist Groups** Returns the groups inside a to-do list. A group is how a long list is sectioned.
-   **Create Todolist Group** Adds a group inside a to-do list.
-   **Reposition Todolist Group** Moves a group up or down within its to-do list.
-   **Reposition Todolist** Moves a to-do list up or down within its to-do set.
-   **List Todos** Returns the to-dos in a list. Completed to-dos are hidden by default and are a separate listing rather than an extra field.
-   **Get Todo** Returns one to-do.
-   **Create Todo** Adds a to-do to a list. Notification of the assignees defaults to off, so a flow assigning real work to a person sets it deliberately.
-   **Create Todo In Todoset** Adds a to-do straight to a project's to-do set without naming a list, which is what the interface does when adding from the project page.
-   **Update Todo** Replaces a to-do. Basecamp's own name for this route is replace, and any field left out is cleared rather than left alone, so flows read the to-do first and pass current values through.
-   **Complete Todo** Ticks a to-do off.
-   **Uncomplete Todo** Reopens a completed to-do.
-   **Reposition Todo** Moves a to-do within its list, or into a different list entirely.
-   **Get Hill Chart** Returns a to-do set's hill chart, Basecamp's picture of how far each tracked list has climbed from figuring it out to making it happen.
-   **Update Hill Chart Settings** Chooses which to-do lists appear on the hill chart. Both lists are absolute rather than additive.

### Message Boards

12

-   **Get Message Board** Returns a project's message board, whose id comes from the project's dock.
-   **List Messages** Returns the messages on a board, most recent first.
-   **Get Message** Returns one message.
-   **Create Message** Posts a message to a board. The drafted status writes it without notifying anybody, which is the dry run this connector's human gate is built on.
-   **Update Message** Changes a message, and is also how a draft is published.
-   **Pin Message** Pins a message to the top of its board.
-   **Unpin Message** Unpins a message.
-   **List Message Types** Returns a project's message types, the categories with icons a message can be filed under.
-   **Get Message Type** Returns one message type.
-   **Create Message Type** Adds a message type to a project. The icon is required and is an emoji character rather than a name.
-   **Update Message Type** Changes a message type's name or icon.
-   **Delete Message Type** Removes a message type. Messages filed under it are not deleted.

### Comments

4

-   **List Comments** Returns the comments on anything commentable. Comments attach to a recording, which is Basecamp's word for any commentable thing, so one operation covers messages, to-dos, documents and cards.
-   **Get Comment** Returns one comment.
-   **Create Comment** Comments on a message, to-do, document, card or anything else Basecamp treats as a recording. Used to attach a decision to the work rather than to an inbox.
-   **Update Comment** Changes a comment's text.

### People and Access

12

-   **List People** Returns everyone on the account.
-   **Get Person** Returns one person.
-   **List Project People** Returns the people who can see a project.
-   **Update Project Access** Grants or revokes access to a project, and can invite people who have no Basecamp account yet. Creating invites by name and email address, while granting takes ids of people already on the account.
-   **List Pingable People** Returns the people this account can start a direct message with.
-   **Get My Profile** Returns the profile of the person this connection belongs to.
-   **Update My Profile** Changes the connected person's own profile.
-   **Get My Preferences** Returns the connected person's display preferences.
-   **Update My Preferences** Changes the connected person's display preferences.
-   **Get Out Of Office** Returns a person's out-of-office dates, if any are set. Useful before assigning work.
-   **Enable Out Of Office** Marks a person as away between two dates, both of which are required.
-   **Disable Out Of Office** Clears a person's out-of-office dates.

### Subscriptions

4

-   **Get Subscription** Returns who is subscribed to a recording, and whether the connected person is among them.
-   **Subscribe** Subscribes the connected person to a recording so they are notified about it.
-   **Unsubscribe** Unsubscribes the connected person from a recording.
-   **Update Subscribers** Adds or removes other people from a recording's subscribers, which is how an escalation reaches the right audience.

### Card Tables

23

-   **Get Card Table** Returns a project's card table with its columns, whose id comes from the project's dock.
-   **Get Card Column** Returns one column of a card table.
-   **Create Card Column** Adds a column to a card table.
-   **Update Card Column** Renames a column or changes its description.
-   **Move Card Column** Reorders the columns of a card table.
-   **Set Card Column Color** Colors a column, from Basecamp's fixed set of eleven colors.
-   **Put Card Column On Hold** Puts a column on hold, which stops its cards ageing and marks the work as paused.
-   **Take Card Column Off Hold** Takes a column off hold.
-   **Subscribe To Card Column** Subscribes the connected person to a column so they hear about every card in it.
-   **Unsubscribe From Card Column** Unsubscribes the connected person from a column.
-   **List Cards** Returns the cards in a column.
-   **Get Card** Returns one card with its steps.
-   **Create Card** Adds a card to a column. Assignees cannot be set here, so a flow that assigns on creation follows with an update.
-   **Update Card** Changes a card, and is the only place its assignees can be set.
-   **Move Card** Moves a card to another column, which is how progress is recorded on a card table.
-   **Get Card Step** Returns one step of a card. Steps are the checklist inside a card.
-   **Create Card Step** Adds a step to a card.
-   **Update Card Step** Changes a card step.
-   **Set Card Step Completion** Ticks a card step off, or unticks it.
-   **Reposition Card Step** Reorders the steps inside a card.
-   **Create Wormhole** Links a column to a column on another card table, so cards can travel between projects.
-   **Update Wormhole** Points an existing wormhole at a different destination column.
-   **Delete Wormhole** Removes a wormhole between two card tables.

### Documents and Files

21

-   **Upload Attachment** Sends a file's bytes to Basecamp and returns an attachable reference. This attaches nothing on its own: placing the file is a separate step.
-   **Get Vault** Returns a vault, which is Basecamp's word for a folder of documents and files.
-   **List Vaults** Returns the vaults nested inside a vault, which is how Basecamp does subfolders.
-   **Create Vault** Adds a folder inside a vault.
-   **Update Vault** Renames a vault.
-   **List Documents** Returns the documents in a vault.
-   **Get Document** Returns one document.
-   **Create Document** Adds a document to a vault. The drafted status writes it without notifying anybody.
-   **Update Document** Changes a document's title.
-   **List Uploads** Returns the files in a vault.
-   **Get Upload** Returns one file, including the address its bytes can be fetched from.
-   **Create Upload** Places an already uploaded file into a vault, using the reference the upload operation returned.
-   **Update Upload** Renames a file or changes its description.
-   **List Upload Versions** Returns a file's earlier versions.
-   **Create Upload Version** Replaces a file with a newer version, keeping its history and its comments. Leaving the description empty carries the previous version's description forward.
-   **Get Cloud File** Returns one linked file held in an outside service.
-   **Create Cloud File** Links a file held in an outside service into a vault, rather than uploading it.
-   **Update Cloud File** Points a linked file at a different address.
-   **Get Google Document** Returns one linked Google document.
-   **Create Google Document** Links a Google document into a vault. This defaults to drafted rather than published.
-   **Update Google Document** Changes a linked Google document.

### Campfire

14

-   **List Campfires** Returns the campfires across the account. A campfire is Basecamp's chat room.
-   **Get Campfire** Returns one campfire, whose id also appears in the project's dock as the chat entry.
-   **List Campfire Lines** Returns the messages in a campfire.
-   **Get Campfire Line** Returns one campfire message.
-   **Create Campfire Line** Posts a message into a campfire. The operation a chat notification flow is built on.
-   **Update Campfire Line** Changes a campfire message.
-   **Delete Campfire Line** Removes a campfire message.
-   **List Campfire Uploads** Returns the files shared into a campfire.
-   **Create Campfire Upload** Shares an already uploaded file into a campfire.
-   **List Chatbots** Returns the chatbots wired into a campfire. A chatbot posts into the room over a URL of its own.
-   **Get Chatbot** Returns one chatbot, including the address it posts through.
-   **Create Chatbot** Adds a chatbot to a campfire. The response carries a posting URL containing a secret, and anyone holding that URL can post as the bot, so provisioning flows handle it as a credential.
-   **Update Chatbot** Changes a chatbot's name or command address.
-   **Delete Chatbot** Removes a chatbot from a campfire.

### Schedule

7

-   **Get Schedule** Returns a project's schedule, whose id comes from the project's dock.
-   **Update Schedule Settings** Chooses whether dated to-dos and cards show up on the project's schedule alongside its own entries.
-   **List Schedule Entries** Returns a schedule's entries.
-   **Get Schedule Entry** Returns one schedule entry.
-   **Get Schedule Entry Occurrence** Returns one occurrence of a repeating schedule entry, on the day named.
-   **Create Schedule Entry** Adds an entry to a schedule. The date format decides the kind of entry: a bare date makes an all-day entry and a full timestamp makes a timed one.
-   **Update Schedule Entry** Changes a schedule entry. Leaving participants empty keeps the current ones, while sending an empty list clears them.

### Timesheets

7

-   **Get Project Timesheet** Returns the time logged against a project.
-   **Get Recording Timesheet** Returns the time logged against one to-do, card or other recording.
-   **Get Timesheet Report** Returns logged time across the account, optionally for one person and one window.
-   **Get Timesheet Entry** Returns one logged time entry.
-   **Create Timesheet Entry** Logs time against a to-do, card or other recording. Hours are sent as text, so fractional values keep the precision they were given.
-   **Update Timesheet Entry** Changes a logged time entry.
-   **Delete Timesheet Entry** Removes a logged time entry.

### Everything Views

16

-   **Everything: Open To-Dos** Returns the to-dos still to be done across every project the connected person can see, rather than one project at a time.
-   **Everything: Completed To-Dos** Returns the to-dos already ticked off across every project, which is how a weekly update is assembled without walking projects.
-   **Everything: Overdue To-Dos** Returns the to-dos past their due date across every project. This view does not page, so it answers in one response.
-   **Everything: Undated To-Dos** Returns the to-dos with no due date set across every project.
-   **Everything: Unassigned To-Dos** Returns the to-dos nobody is on the hook for across every project. The read behind an ownership sweep.
-   **Everything: Open Cards** Returns the cards still in play across every project.
-   **Everything: Completed Cards** Returns the cards already finished across every project.
-   **Everything: Overdue Cards** Returns the cards past their due date across every project, in a single unpaged response.
-   **Everything: Undated Cards** Returns the cards with no due date set across every project.
-   **Everything: Not Now Cards** Returns the cards parked as not-now across every project.
-   **Everything: Unassigned Cards** Returns the cards nobody is on the hook for across every project.
-   **Everything: Messages** Returns messages from across every project the connected person can see.
-   **Everything: Comments** Returns comments from across every project.
-   **Everything: Check-Ins** Returns automatic check-in answers from across every project.
-   **Everything: Files** Returns files from across every project, optionally narrowed to one kind or to particular people.
-   **Everything: Forwards** Returns emails forwarded into Basecamp from across every project.

### My Basecamp

16

-   **Get My Assignments** Returns everything assigned to the connected person, across every project.
-   **Get My Completed Assignments** Returns what the connected person has finished, across every project.
-   **Get My Due Assignments** Returns what the connected person owes, narrowed by when it is due.
-   **Prioritize Assignment** Pins something to the connected person's Up Next list.
-   **Deprioritize Assignment** Takes something off the connected person's Up Next list.
-   **Reorder Up Next** Moves something within the connected person's Up Next list.
-   **Get My Notifications** Returns the connected person's unread notifications.
-   **Get Bubble Ups** Returns the connected person's bubble-ups, the things Basecamp has floated back to the top for them.
-   **Mark Notifications Read** Marks notifications as read, using the opaque references that the notification listing is the only source of.
-   **Get My Note** Returns the connected person's personal note, the scratchpad on their Basecamp home page.
-   **Update My Note** Replaces the connected person's personal note.
-   **List My Drafts** Returns the connected person's unpublished drafts across every project.
-   **List My Bookmarks** Returns what the connected person has bookmarked.
-   **Get Bookmark** Says whether the connected person has bookmarked a recording.
-   **Create Bookmark** Bookmarks a recording for the connected person.
-   **Delete Bookmark** Removes the connected person's bookmark from a recording.

### Boosts

6

-   **List Recording Boosts** Returns the boosts on a recording. A boost is Basecamp's short reaction.
-   **Create Recording Boost** Boosts a recording.
-   **List Event Boosts** Returns the boosts on one event in a recording's history, rather than on the recording itself.
-   **Create Event Boost** Boosts one event in a recording's history.
-   **Get Boost** Returns one boost.
-   **Delete Boost** Removes a boost.

### Reports

13

-   **Get Progress Report** Returns what has been happening across every project, Basecamp's account-wide activity report.
-   **Get Person Progress** Returns what one person has been doing across every project.
-   **Get Upcoming Schedule** Returns everything scheduled across the account within a window. Both dates are required, so there is no default range to fall back on.
-   **List Assignable People** Returns the people who have to-dos assigned to them somewhere on the account.
-   **Get Assigned Todos** Returns one person's assigned to-dos across every project, grouped as the flow asks.
-   **Get Overdue Todos Report** Returns the overdue to-dos across the whole account.
-   **List Gauges** Returns the gauges across the account. A gauge is Basecamp's health dial for a project.
-   **Toggle Gauge** Turns a project's gauge on or off.
-   **List Gauge Needles** Returns a project's gauge readings over time, most recent first.
-   **Get Gauge Needle** Returns one gauge reading.
-   **Create Gauge Needle** Posts a new reading on a project's gauge, with a position, a color and a note.
-   **Update Gauge Needle** Changes a gauge reading's note. Position and color are fixed once posted, so a new reading is how a gauge moves.
-   **Delete Gauge Needle** Removes a gauge reading.

### Search and Recordings

8

-   **Search** Searches across the account. The record types and file types it takes are keys from the search metadata rather than free text.
-   **Get Search Metadata** Returns the record types and file types this account's search accepts. Run before searching, because the keys vary by account.
-   **List Recordings** Returns recordings of one type across the account. The type is required and takes Basecamp's own internal class names.
-   **List Events** Returns the history of one recording, every change made to it, most recent first.
-   **Archive Recording** Archives any recording: a message, to-do, document, card and so on.
-   **Unarchive Recording** Brings a recording back to active from archived or trashed.
-   **Trash Recording** Moves a recording to the trash. This is how anything is removed in Basecamp; there is no destroy, and trashed items are purged by Basecamp itself later.
-   **Set Client Visibility** Shows or hides a recording from the clients on its project. This is the operation the human gate on this page exists for, because Basecamp's trash window offers no protection against something a client has already read.

### Check-Ins

15

-   **Get Questionnaire** Returns a project's check-ins tool, which holds its recurring questions.
-   **List Questions** Returns the recurring questions in a project's check-ins.
-   **Get Question** Returns one recurring question.
-   **Create Question** Adds a recurring question to a project's check-ins, with its schedule. Used to replace a standing meeting with a written answer.
-   **Update Question** Changes a recurring question, its schedule, or whether it is paused.
-   **Pause Question** Stops a recurring question being asked, without deleting it.
-   **Resume Question** Starts a paused question being asked again.
-   **List Answers** Returns the answers people have given to a recurring question.
-   **List Question Answerers** Returns the people who have answered a question, which is how a flow finds who to ask for a breakdown.
-   **Get Answers By Person** Returns one person's answers to a recurring question.
-   **Get Answer** Returns one check-in answer.
-   **Create Answer** Answers a recurring question on behalf of the connected person.
-   **Update Answer** Changes a check-in answer.
-   **Get Question Reminders** Returns the check-in questions the connected person still owes an answer to.
-   **Update Question Notification Settings** Chooses how the connected person hears about a question's answers.

### Templates

7

-   **List Templates** Returns the project templates on the account.
-   **Get Template** Returns one project template.
-   **Create Template** Adds a project template, which is how a repeatable engagement shape gets captured once.
-   **Update Template** Changes a project template's name or description.
-   **Delete Template** Trashes a project template.
-   **Create Project From Template** Builds a new project from a template. Basecamp answers with a construction that is still being built rather than a finished project.
-   **Get Project Construction** Checks how a project being built from a template is getting on. Polled until the finished project appears.

### Tools and Lineup

11

-   **Get Tool** Returns one tool from a project's dock.
-   **Create Tool** Adds a tool to a project's dock.
-   **Update Tool** Renames a tool on a project's dock.
-   **Delete Tool** Removes a tool from a project's dock.
-   **Enable Tool** Turns a tool on in a project's dock.
-   **Disable Tool** Turns a tool off in a project's dock, keeping what is inside it.
-   **Reposition Tool** Moves a tool up or down a project's dock.
-   **List Lineup Markers** Returns the markers on the account's Lineup, which is Basecamp's timeline of projects.
-   **Create Lineup Marker** Adds a dated marker to the account's Lineup, for example a launch or a contract end.
-   **Update Lineup Marker** Changes a Lineup marker.
-   **Delete Lineup Marker** Removes a Lineup marker.

### Account Settings

6

-   **Get Account** Returns the account itself: its name, logo and settings.
-   **Update Account Name** Renames the account.
-   **Update Account Logo** Replaces the account logo, sending the bytes directly rather than through the attachment upload.
-   **Remove Account Logo** Clears the account logo.
-   **Get Calendar** Returns one calendar.
-   **Update Calendar** Recolors a calendar, from the same fixed set of colors a card column uses.

### Client Side

6

-   **List Client Approvals** Returns the approval requests sent to a project's clients.
-   **Get Client Approval** Returns one client approval request and its responses. The read behind a flow that waits on a customer decision.
-   **List Client Correspondences** Returns the messages sent to a project's clients.
-   **Get Client Correspondence** Returns one message sent to clients.
-   **List Client Replies** Returns the replies clients have made to an approval or a correspondence.
-   **Get Client Reply** Returns one client reply.

### Forwarded Email

5

-   **Get Inbox** Returns a project's email inbox, which collects messages forwarded into it.
-   **List Forwards** Returns the emails forwarded into a project's inbox. The read that turns client mail into work.
-   **Get Forward** Returns one forwarded email.
-   **List Forward Replies** Returns the replies to a forwarded email.
-   **Get Forward Reply** Returns one reply to a forwarded email.

### Webhooks

5

-   **List Webhooks** Returns a project's webhooks. Webhooks in Basecamp are per project, so watching everything means one per project.
-   **Get Webhook** Returns one webhook, including its recent delivery attempts, which is the quickest way to see whether a callback is failing.
-   **Create Webhook** Registers a webhook on a project, optionally narrowed to particular record types.
-   **Update Webhook** Changes a webhook, which is how one is switched off without deleting it.
-   **Delete Webhook** Removes a webhook.

## Triggers

1 triggers

### Event Triggers

1

-   **On Basecamp Event** Fires when something happens in a chosen Basecamp project: a to-do created, a message posted, a comment added, a card moved. A webhook is registered on the project while the flow is on and removed when it is turned off. Because Basecamp scopes webhooks to a project rather than to the account, a flow that watches several projects registers a trigger per project, which is worth knowing before designing an account-wide listener.

## Frequently Asked Questions

### What can FlowRunner do with Basecamp?

FlowRunner agents can run Get Authorized Accounts, List Projects, and Get Project in Basecamp, plus 248 more actions.

### Does connecting Basecamp to FlowRunner require OAuth?

Yes. Basecamp connects to FlowRunner with OAuth 2.0, so agents authenticate without handling raw credentials.

### Can Basecamp trigger a FlowRunner workflow automatically?

Yes. Basecamp supports 1 trigger that can start a FlowRunner workflow automatically.

**Work at Basecamp?** This integration exposes Basecamp to AI agents on every FlowRunner plan, including through MCP, at no cost to you. [See what FlowRunner offers integration partners](https://flowrunner.ai/integrations/partners), including how to keep this page current.

---
Markdown version of https://flowrunner.ai/integrations/basecamp. Site index: https://flowrunner.ai/llms.txt
