Requires PHP 5.6.
Using Composer:
The recommended way to install intercom-php is through Composer:
First, install Composer:
$ curl -sS https://getcomposer.org/installer | php
Next, install the latest intercom-php:
$ php composer.phar require intercom/intercom-php
Finally, you can include the files in your PHP script:
require "vendor/autoload.php";
use Intercom\IntercomClient;
$client = new IntercomClient(appId, apiKey);
// Create/update a user
$client->users->create([
"email" => "[email protected]"
]);
// Delete a user by ID
$client->users->deleteUser("570680a8a1bcbca8a90001b9");
// Add companies to a user
$client->users->create([
"email" => "[email protected]",
"companies" => [
[
"id" => "3"
]
]
]);
// Find user by email
$client->users->getUsers(["email" => "[email protected]"]);
// Create/update a lead
// See more options here: https://developers.intercom.io/reference#create-lead
$client->leads->create([]);
// List leads
// See more options here: https://developers.intercom.io/reference#list-leads
$client->leads->getLeads([]);
// Find a lead by ID
$client->leads->getLead("570680a8a1bcbca8a90000a9");
// Delete a lead by ID
$client->leads->deleteLead("570680a8a1bcbca8a90000a9");
// Convert a Lead to a User
$leads->convertLead([
"contact" => [
"user_id" => "8a88a590-e1c3-41e2-a502-e0649dbf721c"
],
"user" => [
"email" => "[email protected]"
]
]);
// List tags
$client->tags->getTags();
// Tag users
// See more options here: https://developers.intercom.io/reference#tag-or-untag-users-companies-leads-contacts
$client->tags->tag([
"name" => "Test",
"users" => [
["id" => "1234"]
]
]);
// Create an event
$client->events->create([
"event_name" => "testing",
"created_at" => 1391691571,
"email" => "[email protected]"
]);
// View events for a user
$client->events->getEvents(["email" => "[email protected]"]);
// Create a company
$client->companies->create([
"name" => "foocorp", "id" => "3"
]);
// List Companies
$client->companies->getCompanies([]);
// List admins
$client->admins->getAdmins();
// Send a message from an admin to a user
// See more options here: https://developers.intercom.io/reference#conversations
$client->messages->create([
"message_type" => "inapp",
"subject" => "Hey",
"body" => "Ponies, cute small horses or something more sinister?",
"from" => [
"type" => "admin",
"id" => "1234"
],
"to" => [
"type" => "user",
"email" => "[email protected]"
]
]);
// List conversations for an admin
// See more options here: https://developers.intercom.io/reference#list-conversations
$client->conversations->getConversations([
"type" => "admin",
"admin_id" => "25610"
]);
// Get a single conversation
$client->conversations->getConversation("1234")
// Reply to a conversation
// See more options here: https://developers.intercom.io/reference#replying-to-a-conversation
$client->conversations->replyToConversation("5678", [
"email" => "[email protected]",
"body" => "Thanks :)",
"type" => "user",
"message_type" => "comment"
]);
// List counts
// See more options here: https://developers.intercom.io/reference#getting-counts
$client->counts->getCounts([])
// Bulk create/update users
// See more options here: https://developers.intercom.io/reference#bulk-user-operations
$client->bulk->users([
"items" => [
["method" => "post","data_type" => "user","data" => ['email' => '[email protected]']],
["method" => "post","data_type" => "user","data" => ['email' => '[email protected]']]
]
]);
// Bulk create/update users
// See more options here: https://developers.intercom.io/reference#bulk-event-operations
$client->bulk->events([
"items" => [
["method" => "post","data_type" => "event","data" => ['event_name' => 'test-event', "email" => "[email protected]", "created_at" => 1468055411]],
["method" => "post","data_type" => "event","data" => ['event_name' => 'test-event', "email" => "[email protected]", "created_at" => 1467969011]]
]
]);
// Create a note
$client->notes->create([
"admin_id" => "21",
"body" => "Text for my note",
"user" => [
"id" => "5310d8e8598c9a0b24000005"
]
]);
// List notes for a user
$client->notes->getNotes([
"user_id" => "25"
]);
// Get a single Note by id
$client->notes->getNote("42");
When listing, the Intercom API may return a pagination object:
{
"pages": {
"next": "..."
}
}
You can grab the next page of results using the client:
$client->nextPage($response["pages"]);