The Basecamp component allows you to interact with your Basecamp account via API. It was tested using Basecamp 4 version and uses Basecamp’s REST API with OAuth 2.0 authentication.
Before building any integration flow you must first register your app at https://launchpad.37signals.com/integrations. You’ll be assigned a client_id and client_secret. You’ll need to provide a redirect_uri as https://{your-tenant-address}/callback/oauth2.
Now you can create new credentials for the component:
OAuth2Add New Auth Client:
https://launchpad.37signals.com/authorization/new?type=web_serverhttps://launchpad.37signals.com/authorization/token?type=web_serveraccess_type:offline,prompt:consent to ensure the component works properly.Deletes a single object using its ID.
Please Note: In Basecamp, a “delete” operation does not permanently remove the object. Instead, it is trashed. This means the object may still be recoverable or visible in the trash.
Includes the field(s) used to identify the object.
Returns the id of the deleted object.
Retrieves a single object using its ID.
Includes the field(s) used to identify the object.
Returns an object with the result of the lookup.
If the Upload type is selected and the Download to Maester option is enabled, the result will include internalURL, which points to the file stored in the platform’s internal storage (Maester).
Lookups a set of objects based on a defined list of criteria. The results can be emitted in different ways.
Please Note: The component automatically retrieves all available objects, but the number of items returned per iteration can vary. Typically:
Page 1: ~15 items
Page 2: ~30 items
Page 3: ~50 items
Page 4 and above: up to 100 items per iteration
The component will continue fetching pages until all objects matching the criteria are retrieved. For more information about Basecamp’s API pagination, see their documentation
Emit page or Emit individually.Contains the fields used to identify the objects. If no fields are available, no input metadata is provided.
For Emit page mode: An object with the key results, which contains an array as its value.
For Emit individually mode: Each object fills the entire message.
Sends a custom HTTP request to the Basecamp API. Use this action when you need functionality not covered by prebuilt actions.
false.https://3.basecampapi.com/{accountId}.GET, POST, PUT, DELETE.This action updates an existing object or creates a new one, depending on the selected operation.
Update or Create.Fields are dynamically generated based on the selected Object Type.
Here are some input metadata examples:
Upload, operation - Create :{
"bucketId": "100",
"vaultId": "123",
"fileUrl": "http://example.com/cat.png",
"base_name": "kitten"
}
Document, operation - Update :{
"bucketId": "100",
"id": "125",
"title": "my-document",
"content": "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do incididunt ut labore et dolore magna aliqua.</p>"
}
The result object from the create or update operation.
Creates a subscription to selected events. The webhook subscription is automatically created when the flow starts and deleted when the flow stops.
More information can be found on Basecamp Webhook Docs.
all if not chosen.None.
An object containing the event details that describe the changes.
Output Metadata Example:
{
"id": 1234567890098,
"kind": "document_created",
"created_at": "2025-09-26T16:52:47.351+03:00",
"recording": {
"id": 145,
"title": "New Document",
"type": "Document",
"url": "https://3.basecampapi.com/123/buckets/321/documents/145.json",
"bucket": {
"id": 321,
"name": "My Project"
},
"creator": {
"id": 1234567890,
"name": "Bob",
"email_address": "bob@example.com"
},
"content": "<div>test</div>"
}
}
real-time not enabled), after the flow starts, you will need to run it once. Just follow the webhook URL (to trigger the first execution). This action will create a subscription.