Invalid SQL: REPLACE INTO `swsessions` (`sessionid`, `ipaddress`, `lastactivity`, `useragent`, `isloggedin`, `sessiontype`, `typeid`, `dateline`, `status`) VALUES('r0mvhhtj284sfhvmmm4p5hxkkdjrhhz5', '98.84.18.52', '1728000546', 'CCBot/2.0 (https://commoncrawl.org/faq/)', '0', '40', '0', '1728000546', '0'); (The table 'swsessions' is full) Nanacast - Powered By Kayako eSupport Is Nanacast integrated with Kajabi?

Article Details
URL: http://support.nanacast.com/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=292
Article ID: 292
Created On: 17 Jul 2015 05:35 PM

Answer

While direct integration with Kajabi is not built in, Nanacast provides both incoming and outgoing APIs that can be used for integration with third-party platforms. Though we don't provide consultation services for custom integration, here's how you'd approach integration with any third-party site/service:

 

You first need to create the offer in Nanacast that will be used for integration with the corresponding offer on the third-party site/service. You will need to determine how you plan to use their site/service, and whether its place in your sales flow needs to come either before or after the Nanacast part of the process.

 

For example, we have some clients who use a third-party checkout process ahead of Nanacast and send client data to offers in Nanacast using our Incoming API, to use our physical fulfillment integration and email list service integration.

 

You can find documentation on the use of the inbound API from the left menu under API Integration >> Incoming API. If you're not familiar with working with APIs, it's recommended you have a programmer/developer who is.

 

Alternatively, you'd send customers through a Nanacast opt-in/checkout process and integrate with third-party site/service with our Outgoing API, which gets triggered on subscriber events.

 

You can find documentation on the use of the outbound API from the left menu under API Integration >> Outgoing API, or from http://nanacast.com/docs/outgoing_api.html

 

We are not experts on Kajabi, and would point you to Kajabi support resources for an understanding of how their APIs/webhooks may work.

We have a very basic understanding of Kajabi integration based on the following article by Kajabi:

 

http://help.kajabi.com/customer/portal/articles/735181-how-do-i-setup-a-custom-shopping-cart-

 

To sum up the page, it looks like they have some specific requirements:

-The request needs to be HTTP POST

-The request needs to go to a specific URL

-The request to use request variables with specific name/value pairs

 

All of this is doable with Nanacast.

 

Nanacast outgoing API sends requests with both HTTP POST and GET.

To set this up, you'd do it on the Notifications/Custom fields page of your offer.

Enable the "Activate Advanced API" option and in one of the available API URL slots, provide the notification URL listed on the Kajabi page.

For the required Kajabi parameters, such as the api_key, kjbf and kjbo fields, it appears you can put them straight in to the URL, just like the example URL they show after the "Cart Integration - Custom" screenshot.

 

In order to get the other field names (email, first_name, last_name) into the URL in the format Kajabi is expecting, you can follow the instructions at the top of our API documentation:

 

"You can also include any of the variables below as a "tags" in your URL and the system will replace the tag with the actual value. This way you can post the values to an existing script that expects a variable name to be different than the ones listed below. For example, your notification URL could be: http://example.com/your_script.php?email_address={u_email}&firstname={u_firstname} . The system would then post all the variables below to: http://example.com/your_script.php?email_address=joe@example.com&firstname=Joe"

(http://nanacast.com/docs/outgoing_api.html)

 

In other words, by default Nanacast would post the first name field as "u_firstname", while it looks like Kajabi is expecting it to be named "first_name". So when you add variables to the URL, just list the field name that Kajabi is expecting, and then for the value of that field, supply the corresponding Nanacast field name in curly brackets {}. Whatever the customer supplies in the Nanacast field will be sent to Kajabi in the field name that Kajabi is expecting.

 

However, it looks like Kajabi has a different URL for sending notifications on cancel. While you can send to multiple URLs with the Nanacast outgoing API, we send ALL API calls for every mode (add, suspend, etc.) to all the URLs for every subscriber event.

 

So what you should probably do, instead of the approach described above, is to send all your requests to a relay script that you set up on your own site-- that script would need to take all the Nanacast API calls, format it to the variables Kajabi is expecting, and send the requests to Kajabi from your own script. That way, when we send a mode=suspend (i.e. an unsubscribe event) to your script, then your script would send that call to the Kajabi cancel URL instead of the Kajabi notification URL where you'll be sending mode=add (i.e. new subscriber) notifications.

 

Again, if you're not familiar with working with APIs, it's recommended you have a programmer/developer who is.