Basecamp
Project ManagementBasecamp 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.
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 step uses it. Every action is built and verified against the Basecamp API.
Without FlowRunner
With FlowRunner
Use Case Scenarios
-
Engagement kickoff from a template
A deal closes in 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 and posts the exceptions to 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 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 Capabilities
251 actionsAccount 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 triggersEvent 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.
Start building with Basecamp
Free plan, no card required. Connect in minutes.