Skip to main content
Question

Zapier Webhooks posting JSON to Basecamp


How do I configure the Zapier Webhooks to POST data as a JSON payload to Basecamp, so that I can create a new card in a Basecamp card table based on incoming data from the zap, which comes from Notion?

 

Card tables in Basecamp are not supported natively by Zapier, so I’m attempting to send data into a Basecamp card table via Webhooks instead. 

 

TIA! 

@getpunchdrunk - Please share the Basecamp doc link where the webhook event types are listed.  Also, share screenshots of your zap steps, the step that retreives the data you need for Basecamp, and the action tab from the Basecamp webhook step.  I bet if you add this info, you will get a few responses.

Best regards,

Zap Support

GetUWired


Here is the info from Basecamp on their API:

https://github.com/basecamp/bc3-api

Card specific: https://github.com/basecamp/bc3-api/blob/master/sections/card_table_cards.md#create-a-card

Previous discussion on a similar topic: 

 

I could never get anything working using the Zapier Webhooks module in Zapier, so I have already deleted that from my Zap (no screenshots) -- but what I’m looking for is guidance or steps on how to configure a Zapier Webhooks module so that it would create a new card inside a card table in Basecamp. 

 

I think I understand how to fill things out, but the steps are just above my comprehension in terms of how to insert and format BC credentials in Zapier, test functionality, etc. 

 

Thank you!


I spoke too soon, looks like I do have some screenshots to share from Zapier. The entire Zap is:

 

  1. Input from Notion when a new database item is created
  2. That input is sent to Google Calendar to create a new event (this part is working)
    then the part I’m trying to get working:
  3. Take the same input and create a card within a card table in Basecamp 
Configuring webhooks by Zapier to POST to Basecamp
​​​​​​
Matching fields from Notion input into the Basecamp card within a card table
Testing doesn’t work, I think at minimum the Basecamp credentials aren’t being transmitted to Basecamp, but the formatting might be wrong too

 


@getpunchdrunk 

Screenshots do not show how the Headers section is configured.

What is the encountered error when testing the API step? (screenshot)

 

 


A few more screenshots attached, I don’t have any data in the headers section – I’m sure that somewhere in here I need to authenticate with Basecamp, just not sure where/how to do it. Also wondering if this means I would need to input my Basecamp username/password in clear text into Zapier in order for this to work (vs. authenticating ahead of time between Zapier/Basecamp)? 

 


@getpunchdrunk 

Per the API docs, you need to add 2 Headers

Authorization: Bearer ACCESS TOKEN

Content-Type: application/json

 


Here’s where I am totally out of my depth – I added what seems right into the headers section in Zapier, but I assume $ACCESS_TOKEN is a variable that I’m meant to input somewhere else? I’m unfamiliar with curl and the other formatting in that API doc. Here are a couple screenshots from trying this out...please let me know how to properly format and input the information here so that Basecamp sees the correct data. Thank you!

 

 


@getpunchdrunk 

Each of these is a pair

Left/top: Content-Type

Bottom/right: application/json

 

Left/top: Authorization

Bottom/right: Bearer $ACCESS_TOKEN

NOTE: $ACCESS_TOKEN this needs to be replaced with your actual access token

 


Troy, thank you for your ongoing support with this, and please forgive my ignorance :) 

 

What is $ACCESS_TOKEN and where do I get it? 


Also, in terms of inputting the header, in Zapier there are just fields for headers, how does that relate to left/right/top/bottom? 


@getpunchdrunk 

In the Basecamp API docs, reference the section for Authentication: https://github.com/basecamp/bc3-api?tab=readme-ov-file#authentication

 

 


@getpunchdrunk 

Each Header is a key/value pair of fields. (2)

Depends on how wide your right rail width is.

If it’s narrow, the fields wrap to be stacked. (top/bottom)

If it’s wider, the fields show side by side. (left/right)

 


@getpunchdrunk 

Another observation, instead of the field “description” use “content”

 

 


@getpunchdrunk 

Per the Basecamp 4 API documentation, there also needs to be another Header: User-Agent

https://github.com/basecamp/bc3-api?tab=readme-ov-file#identifying-your-application

 


@getpunchdrunk 

The Authentication for Basecamp 4 API requires: OAuth 2

You’ll need to register your app first to get a client_id and client_secret here: https://launchpad.37signals.com/integrations

 


Got authentication going in Zapier, now it looks like I may have to create a custom Zap that queries the authentication from Basecamp, writes it into Zapier storage as a variable, and then access that new Zap from the Zapier webhooks in order to authenticate to Basecamp. 

 

It is an absolute whirlwind!


@getpunchdrunk 

Perhaps use the Storage by Zapier app in your Zap: https://zapier.com/apps/storage/help


Reply