Feb 24, 2022 07:52 AM
Good Day,
I am looking to run a scenario through Airtable where a webhook activates an integromat scenario, which creates a to-do in Basecamp.
My issue is that I am having a problem uploading the images to that to-do. All that comes through is the URL.
Has anyone had any experience with this?
Feb 24, 2022 08:53 AM
I’ve never used Basecamp, but what format is it expecting the image to be sent to it in?
You are sending it an array of URLs (or you might be sending it a collection of URL’s, since that’s what it says in the screenshot).
Is it expecting an array, or is it expecting a single URL?
If it’s expecting a single URL, you’ll need to specify the first attachment with the number [1] after it. But if you’re trying to send multiple attachments per record, I’m not sure how Basecamp wants to receive multiple attachments.
Feb 24, 2022 11:24 AM
Thanks for the speedy reply @ScottWorld
So from what I understand it is asking for the image to be converted to JSON format with the output in an “attachable_sgid” string which is then added to the body of the To-do in a tag.
Feb 24, 2022 06:56 PM
Thanks — those screenshots are helpful!
I don’t believe that you can just add an attachment into the Description field like what you did earlier. It looks like creating an attachment is a whole different endpoint, meaning that you would need to create a separate request to the API to create an attachment.
This can usually be done in Integromat with the “Make an API Call” module, but it doesn’t look like they have one for Basecamp. So you would probably use the HTTP: Make A Request module. You could also check to see if any of the pre-existing Basecamp modules support adding an attachment as a part of the module.
Assuming that you can find a pre-existing Integromat module that will enable you to send an attachment to Basecamp via the API, Integromat’s pre-existing modules normally send the data in JSON format for you, so you might not need to worry about creating JSON. However, if none of the pre-existing Basecamp modules support adding an attachment (meaning that you need to use the “HTTP: Make A Request” module), you will need to craft your own custom JSON by using the JSON modules.
Also, it looks like the other big issue here is that Basecamp is looking for the binary version of your attachment.
So you would need to first convert your attachment into binary data before sending it to Basecamp. It seems like you would use Integromat’s HTTP: Get A File module to download the attachment from Airtable, and then you would apply the “toBinary” function to turn the downloaded file into raw binary data. Then, you could send that raw binary data into Basecamp.
All of this can be pretty tricky & time consuming to setup, so if you have a budget for your project and you’d like to hire an Airtable Consultant & Integromat Expert+ Partner to dive into this further with you and help you figure everything out, feel free to contact me through my website at scottworld.com:
Feb 26, 2022 10:20 PM
@ScottWorld Apologies for the late response, but it was the weekend this side of the world. I do appreciate the detailed response and I will have a look into it this week. If I find the answer I will post it here, but it seems like both Basecamp and Integromat could not give any definitive answers.
Feb 27, 2022 04:10 AM
Based on your screenshots, it should be possible, but it might involve you diving into custom coding your own API requests from scratch. (This is assuming that Basecamp allows attachments in to-dos.)