-
Notifications
You must be signed in to change notification settings - Fork 0
Home
If you are on this website, you were probably looking for a way to connect your Laravel App to the Keap (or Infusionsoft) API.
There are some packages out there that bridge Keap and Laravel, but they are all based on the PHP-SDK offered by Infusionsoft.
What is the problem with the SDK? Well...
It uses the XML API that is deprecated by Keap itself.
Keap is currently rolling out the REST API v2, and the company itself marks the XML-RPC API as Deprecated.
The Infusionsoft PHP-SDK is built using the XML and a bit of the REST API. It is a weird cross-over, and also the XML is deprecated. What is happening?
Everything is mainly built with an architecture that uses outdated packages, see for example php-http/message-factory
, which is an abandoned package since May 2023.
It has only seen recent updates for quick bug fixes and just bland support of PHP v8.1. Most of the architecture and the design still reflect the style of PHP 5.0+.
Do you remember when everybody hated PHP? The times before Laravel? Yes, that architecture...
Ok, Infusionsoft has a great API, with great software, but the SDK does not satisfy us as it should.
We do not want "good enough," we want the best possible solution for us and our clients.
If we wanted the "fit-for-all" solution, we would be using WordPress...
If we wanted the "PHP 5" solution, we would be using WordPress...
If we wanted the "deprecated" solution, we would be using WordPress...
Sorry, I'm done insulting WordPress...
Laravel is for best-in-class, and excellence does not compromise.
To solve all the possible problems, I decided to completely rebuild the package myself. A package that is here for you to use freely.
For now, it is working only for the Keap REST v1, but soon, as it finishes rolling out, I will update it to v2.
You may think...
Absolutely! The upwebdesign/laravel-infusionsoft
package has been a great inspiration for building this one.
But in the end, all these packages are simply a wrapper around the Infusionsoft PHP-SDK.
Ask yourself this question:
Do you want another wrapper or do you want a Laravel-Fit specific package for your application?
Do you want a Laravel syntax? With simple commands that reflect Eloquent style?
Do you want Laravel Architecture? With Facades and built-in fakes?
Or do you want an outdated XML mess?
It is easy to switch. Here is the guide to get started!
Not yet convinced?
Let's imagine you installed from Composer and prepared the API keys. It takes 5 minutes, only once. How does it work now?
Just visit the URL:
yourdomain.com/keap/auth
It redirects to Keap where you can log in with your credentials and boom, your app is connected.
Import the facade Keap:
use KeapGeek\Keap\Facades\Keap;
Keap::contact()->list();
You do everything with that facade. Create contacts, tag contacts, create appointments, update notes, etc...
All the REST API v1 entry points have been mapped to a Facade method. You can find the entire list here: all the Facade methods
But this is kind of expected.
A good package should do what it promises to do. What else could I add?
The best benefit of this package... If you have been using the Keap API, you know it fails...
You just have to retry, but yeah, so annoying...
You have to wrap the requests around with a retry function, filter the exceptions, and catch the right one. Hours of work.
Well, not anymore!
**🌐 All the Laravel Keap requests are equipped with a retry option in case of server failure! ** And it is even configurable via the Keap config file (see config options).
For you, this means:
No more wrappers around the Infusionsoft facade for retrying in case of server failures.
No need to use the retry function, taking care of catching the right Exception, handling the error, and so on...
Jump straight to coding the feature you need!
Enjoy the evening with your friends and family, with all your tasks done.
** 🌐 All the GET requests will be automatically cached! **
This greatly reduces loading time, especially for repeated requests.
Also, in case of refreshes, this ensures that the API is not overloaded and remains responsive.
We have extensive documentation to cover your needs!
There is extensive documentation that will lead you by hand through installation and the various parts of the package.
How to call the APIs, how to configure the package, which kind of requests you can do...
It is all in here!
And in case of any problem, we are here to help you!