Forum Documentation Showcase Pricing Learn more

Integromat API with Bubble, having issues getting it working

Not sure if I should post here or to Integromat but this app was recommended to me by another user on here so I was trying it out but having some issues. I assumed it was this guide here I needed to follow https://support.integromat.com/hc/en-us/articles/360009497153-Send-data-to-Integromat-as-JSON-via-an-action-in-a-Bubble-workflow-using-the-API-Connector-plugin
but having some issues. I’ve followed it exactly and double checked, but whenever I try to initialize the call in Bubble, it gives me an error saying:

“The API call returns a non-object and you picked JSON. Please check.”

Again I’ve followed the guide exactly, and it seems very straightforward but I keep getting that error. Not sure how to tell if that’s an issue with Bubble or Integromat, but everything is exactly the same as the guide says as far as I can tell.

Is there any way to get further details or try to figure out what the issue might be?

Hi Lmoreau,

I’m having the same error, did you succeed ?

This can help. Integromat + Bubble resources

Yes I did! The guide posted by the other person is wrong, you have to check the box that says “Capture Response Headers” and then it works. That step is missing from the Integromat support page.

3 Likes

Amazing !
Thank you very much for your help :slight_smile:

@lmoreau and @JohnMark

Thank you very much, everything is working like I want (I was looking to update a google sheet from a workflow), it is working but I have this error message :

Do you know where it is coming from and how to fix it ?

1 Like

Unfortunately this is the reason I gave up on this. It’s not possible to prevent that error, Integromat always sends it and can’t stop it. Bubble support told me you need to run the workflow trigger: “An element has an error running a workflow” or “An unhandled error occurs” and then specify what happens next. So for example, say you have a button in Bubble that runs the workflow and sends data to Integromat, you’ll always get that error, so you’d then do the “An element has an error running a workflow” and pick the button as the element, and then you can either leave it as no action (which just hides the popup), or you can do something else like “Navigate to a page” etc.

My problem was that I needed the workflow to continue running steps AFTER the Integromat API step which I couldn’t figure out. So I had a button where the workflow was supposed to:

  1. Create a new record with data from the page
  2. Run the Integromat API to send the data to Integromat
  3. Navigate to the page for the record created in step 1

The problem was that when creating the workflow trigger “An element has an error running a workflow” there’s no way that I could figure out to set the action as “Navigate to a page with the data being from step 1” if that makes sense.

The other issue is that Integromat doesn’t support multi line or formatted input with this API. So if you have a multi line input box, or a rich text one, that will fail every time and say invalid JSON.

I was hoping it would have worked but was too much headache. Zapier is much easier.

Thank you, I think that you solved my problem :slight_smile:

In your situation, maybe you could store the datas you need from step 1 in a custom state on your page before using integromat ? And then, use it again from the “An element has an error running a workflow” ?

That’s what I was hoping to do but I could never figure out how to save the results of step 1 as a state to then load it in the error capture workflow. I made a state under the button called “newunique_id” and would set the workflow to save the unique_id of step 1 there. The error capture workflow isn’t related to a record type, so I can’t figure out any way to do “navigate to a page” and then under data to send, have it reference the state from earlier since the state was set on the button. Unless there’s a way to set some kind of global state that I’m not aware of.

This is really odd as I’m using Integromat and it works flawlessly with no errors returned. Did you use the Bubble Watch Events action to set up your webhook or did you use the custom webhook?

I don’t need to get data back from Integromat so I have my data type set as text and am not capturing response headers. If you do need data back from the call, you will have to add a webhook response step in Integromat though. That is likely why it’s saying it returns a non-object.

Integromat has the ability to trigger a workflow in your Bubble app so you should be able to at least fire off a new workflow from Integromat to complete the steps if you can’t get rid of the errors. However, I think if you unchecked the capture response headers and changed the data type to text your errors would vanish.

2 Likes

I’m using Bubble Watch Events yes. In this case I don’t need a response back from Integromat either, but if I don’t pick capture response headers I’d get that error about non-object so Bubble support told me you need to check that off.

When you say you have your data type set as text, where do you mean that is? Like under the parse JSON step for each field’s data type? Mine basically looks like this:

Plus another page or so of fields there.

In the API connector in Bubble.

There is an ‘empty’ option under Data type as well but it seems like I was having some issues when trying to use that option. I can’t remember exactly but the Text option works fine.

2 Likes

Thank you a lot @eli I changed what you said and I don’t have errors anymore

1 Like

Thanks that worked, but I don’t think Integromat is going to work for what I need as I have a couple issues with it. The first one is that originally I was wanting to use it to create tickets in Freshdesk, where a user can type a multi line input box as their request details and send. Integromat fails every time as it says invalid JSON. Integromat support said you can only send single line text, or a constant string of text, but as soon as the user does a line break, it will fail, same with if they use bold or italics etc. So it works if someone types “Can you please process option 1, option 2, and option 3?” but if they write

“Can you please process:
option 1
option 2
option 3”

It fails saying invalid JSON.

I can live with that though but do you have much experience using the “Search Data Things” Bubble action? It’s strange, as when I use one data type “Opportunity” and use this action, it does work, but it only shows results from about 21 fields even though there’s 35 fields under “Opportunity” data type, all just text etc. Then when I do the same thing for “Leads” data type, it pulls 12 of the fields, but there’s actually 22 of them in total. No idea why it only pulls some and not others. I do have in Bubble under Settings > API to expose Opportunity and Leads, but is there somewhere I’m supposed to specify which fields under each data type are used?

This is an invalid JSON. The issue is not Integromat. The issue is the system that doesn’t correctly encode the JSON.

The fields returned by Bubble are the filled one. Other fields will not be returned. You can also check your privacy settings. Maybe you didn’t select View all fields and Just set some of them.

2 Likes

What @Jici said :point_up_2::point_up_2::point_up_2:. On both issues.

If a field is empty that field won’t be sent. Create a sample record that is completely filled and do your search on that one.

1 Like

That seemed to work as I guess it was empty fields. I was trying to have it then add the results to Google Sheets but on the Add to Google Sheets step it asks for the Bubble fields to put under each Sheet Column, so I had it set to just pull 10 results maximum as having it pull 4000+ each time counts as 4000 tasks towards the limit. When I set it to pull 5000 it then shows all fields including the ones that were missing before.

If JSON doesn’t support multi line or formatted inputs does that mean it’s impossible to use Bubble and Integromat with those kind of fields, or are there any other workarounds? We use Zapier instead as it doesn’t have this issue, but would be good to know for future.