How to send a POST to Infusionsoft

Hello, I’m trying to send an Webhook POST from Zapier to Infusionsoft. I understand Zapier has the functionality to send a POST, but I’m not sure where I need to post to, now what kind of information is needed in the POST.

I’ve tried to figure things through some of the materials provided in the Infusionsoft Developers area, but I’m not sure what to do. Could I get some help on what I need to do?

The following may be helpful: Use code and webhooks in Zaps | Create | Help & Support | Zapier

@Blake_Butcher,

You don’t personally send it anywhere. You tell Zapier how to access your app with authentication and it does this for you.

You’re asking a Zapier question on an Infusionsoft forum (it’s an integration TO Infusionsof, but the product involved is Zapier and they know their product best). I would reach out to their support for more specific details as anyone specializing in Infusionsoft integrations will likely only have general knowledge of zapier’s workings.

I realize that Zapier has an integration already with Infusionsoft. The problem is that they don’t have an already built Action for what I’m trying to do… and so the Zapier support told me to try to go about it doing a Webhook Post from them to Infusionsoft.

So maybe, instead of saying from Zapier, I should simply be asking how do I send an HTTP Posts (regardless of from where) to Infusionsoft in a way that an Infusionsoft could receive the data and perhaps update a Contact and/or Apply a Tag.

The major issue that I’m having with Zapier is that I’m wanting to update an Infusionsoft Contact based on the Contact Id, however Zapier doesn’t have the API Action of “Update Contact”, they have the Action of “Create/Update Contact” which doesn’t update based on the Contact Id.

Ah, ok, so we are in the Infusionsoft realm :stuck_out_tongue_winking_eye:

So to provide a webhook to capture Zapier, you have to write a script that essentially sits there waiting to be activated by Zapier. When activated, the script needs to read the post data and do whatever you wish from there.

My company has created these kinds of scripts before so this part I can speak confidently on. To get the Infusionsoft Id of a contact (assuming it is pre-existing) you should probably ensure that the email address uniquely identifies them so that the script can reliably recall the id (as apposed to a list of id’s returned if many contacts are using the same email address). You could use a unique value from another system if it is stored in Infusionsoft already but that would also involve custom fields as well. The point is that you have to decide what your unique identifier is to lookup the Infusionsoft Id with and then use that to update. If it doesn’t exist then you just create a new contact and you can get the id upon success. Both of these can be accomplished in one method (addWithDupCheck).

1 Like

Thanks, John. I’m going to be passing an Infusionsoft Contact Id to another software, and then eventually things will go back to Infusionsoft and I’d like to indicate which Infusionsoft Contact to update based simply on the Infusionsfoft Contact Id.

In the Infusionsoft app, there might be multiple contacts that have the same Email Address, and so I feel that if I can have the Infusionsoft Contact Id be the unique identifier, then I should be better off.

An idea of what I’m trying to accomplish:

  1. Infusionsoft Contact data (including Contact Id) is sent to a third party software
  2. Third party software does it’s thing, and at some point triggers to send data back to Infusionsoft and uses the Contact Id to identify which Contact to update in Infusionsoft

I was hoping that I could do this with a POST. So the idea would be that I send a Webhook/HTTP POST to Infusionsoft, and it receives the data and processes it. Based on what Zapier said, I was hoping I could send the data to like an Infusionsoft URL and put in parameters for things like an API Key, Infusionsoft app name, and then things like contactId, tagID, and custom fields.

I’m not sure if that’s possible, but if so, that would be great! :slight_smile:

So you have a third party software that will already know the IS id. You want updates to make it into IS and are needing the “middleware” to do that. Zapier would be able to do this but only with their premium product I believe. There is no “endpoint” that you send data to IS. You have to write code one way or the other to accomplish this. There is a REST api but it does not yet support contact. There is a current api that uses OAuth2 for authentication which would additionally involve maintaining a service that keeps your access token active. There is a legacy api option which would be the easiest to use but is no longer ‘supported’ by IS support so you’d be “on your own” when it comes to official advice (though FB and this forum will likely be helpful still). You can get Zapier to send to an endpoint that you write for free but the code has to be written to accept the information from them so there really isn’t any point to doing Zapier since you can just have the third party application post to the same script for you.

1 Like

I have a similar question. I have zapier. When the trigger happens “signed Get Accept” it should then create a post request action which should apply a tag to a contact based on the id that the trigger has… i am trying to send sample but it says it is returning “unauthorized”… i am using basic auth… is this how i should be doing it? Do i need to send anything in the headers?

@Jose_Moreno, the Authorization header needs to contain the Bearer AccessToken, as described under Making Requests at the start of the REST documentation.

GET /crm/rest/v1/tasks HTTP/1.1
  Accept: application/json, */*
  Host: api.infusionsoft.com
  Authorization: Bearer 123abc
1 Like

I attached Zapier Post to Infusionsoft image.This is the Zap I am trying to make work. I think the URL is wrong but I tried adding the Get like you are saying… but I think I am getting it wrong… do I need to set up a separate Zap to authenticate and then a Zap to post so that it is 2 different requests? I need a contact to be updated every time they sign our contracts. So would I set up a Zap that makes a get request first and then Posts once authenticated?