Create or Update Company

Example Request

$ curl https://api.intercom.io/companies \
-X POST \
-H 'Authorization:Bearer <Your access token>' \
-H 'Accept: application/json' \
-H 'Content-Type:application/json' -d '
{
  "name": "Blue Sun",
  "plan": "Paid",
  "company_id": "6",
  "remote_created_at": 1394531169,
  "size": 750,
  "website": "http://www.example.com",
  "industry": "Manufacturing",
  "custom_attributes": {
    "paid_subscriber" : true,
    "team_mates": 0,
    "monthly_spend": 155.98
  }
}'
HTTP/1.1 200 OK

{
    "type": "company",
    "company_id": "6",
    "id": "57e0120926806ceca3c13ba8",
    "app_id": "pi3243fa",
    "name": "Blue Sun",
    "remote_created_at": 1394531169,
    "created_at": 1474302473,
    "updated_at": 1475659931,
    "last_request_at": 1473419085,
    "monthly_spend": 49,
    "session_count": 0,
    "user_count": 0,
    "tags": {
        "type": "tag.list",
        "tags": []
    },
    "segments": {
        "type": "segment.list",
        "segments": [
            {
                "type": "segment",
                "id": "56cc69cc8618d37b45000009"
            }
        ]
    },
    "plan": {
        "type": "plan",
        "id": "108609",
        "name": "Paid"
    },
    "custom_attributes": {
        "paid_subscriber": true,
        "team_mates": 0,
        "referral_source": "Google",
        "founded": "20th Century",
        "monthly_spend": 155.98,
        "remove": true
    }
}
// unsupported
intercom.companies.create(:company_id => 6, :name => "Blue Sun", :plan => "Paid")
<?php
$intercom->companies->create([
    "name" => "Academy",
    "id" => "10"
])
?>
import static io.intercom.api.CustomAttribute.*;

Company company = new Company()
  .setName("Blue Sun")
  .setCompanyID("1")
  .setPlan(new Company.Plan("premium"))
  .addCustomAttribute(newIntegerAttribute("items", 246))
  .addCustomAttribute(CustomAttribute.newStringAttribute("bar", "fruity"));

company = Company.create(company);

company.setName("Blue Sun Corporation");
Company.update(company);

Companies can be created or updated via a POST to https://api.intercom.io/companies, which accepts a JSON object describing the company.

🚧

Companies with no users

It is important to note that companies will be only visible in Intercom when there is at least one associated user. Check the Companies and Users section for more information

Companies are looked up via company_id, if not found via company_id, the new company will be created, if found, that company will be updated.

Note that the company_id field itself cannot be updated through the API.

Companies may also be created or updated via a User request - see the section "Create or Update User".

Attributes

The table below shows the fields you can create or update for a company -

AttributeTypeDescription
remote_created_attimestampThe time the company was created by you
company_idstringThe company id you have defined for the company
namestringThe name of the company
monthly_spendnumberHow much revenue the company generates for your business. Note that this will truncate floats. i.e. it only allow for whole integers, 155.98 will be truncated to 155. Note that this has an upper limit of 2**31-1 or 2147483647.
planstringThe name of the plan you have associated with the company
sizenumberThe number of employees in this company
websitestringThe URL for this company's website. Please note that the value specified here is not validated. Accepts any string.
industrystringThe industry that this company operates in
custom_attributesobjectA hash of key/value pairs containing any other data about the company you want Intercom to store.

Custom Attributes

The custom_attributes object allows you to send any information you wish about a company with the following restrictions -

  • Field names must not contain Periods (.) or Dollar ($) characters
  • Field names must be no longer than 190 characters.
  • Field values must be JSON Strings, Numbers or Booleans - Objects and Arrays will be rejected.
  • String field values must be no longer than 255 characters.
  • Maximum of 100 fields.

Session Count

A company's session count is tied to users' session count whilst in the context of that company. So, to update a company session count,
update the user with that company and increment the user's session.

Returns

The created or updated company object.

New company objects will be provided with an id field - this value cannot be created or edited by clients.