{"command":{"effect":"write","timeoutSeconds":30,"inputSchema":{"type":"object","description":"You can bulk create contacts by submitting an array of contact objects. This is a **strict create** and never updates an existing contact.\n\nThe endpoint creates an async job that processes the items in the background. Use the returned job ID with `GET /contacts/bulk/{id}` to check the job status.\n\nOnly the fields listed in the request schema below can be set. Any other fields in a contact object are ignored.\n\n{% admonition type=\"info\" name=\"Handling existing contacts\" %}\n  If a contact already exists with the given `external_id` or `email` (including an archived contact), that item is rejected and the job's `state` ends as `completed_with_errors`. New contacts in the same request are still created. The job `state` from `GET /contacts/bulk/{id}` is the signal that one or more items were rejected.\n\n  Created contacts aren't returned with IDs in the response. Look them up afterwards with [Get a contact by External ID](/docs/references/rest-api/api.intercom.io/contacts/showcontactbyexternalid) or [Search contacts](/docs/references/rest-api/api.intercom.io/contacts/searchcontacts).\n{% /admonition %}\n\n{% admonition type=\"info\" name=\"Limits\" %}\n  - Maximum of 100 contacts per request.\n  - You can append tasks to an existing job by including `job.id` in the request body.\n  - Tag application is best-effort and processed asynchronously: unknown tag IDs are skipped, and per-tag results are not returned in the job status.\n{% /admonition %}\n\nRequires the `read_write_users` or `write_users_companies` OAuth scope.\n","properties":{"headers":{"type":"object","properties":{"Intercom-Version":{"$ref":"#/definitions/intercom_version","enum":["2.17"]}},"required":[],"additionalProperties":false},"body":{"$ref":"#/definitions/bulk_create_contacts_request","examples":[{"contacts":[{"external_id":"abc123","email":"joe@bloggs.com","name":"Joe Bloggs","role":"user","phone":"+353871234567","avatar":"https://www.example.com/avatar_image.jpg","signed_up_at":1571672154,"last_seen_at":1571672154,"owner_id":"321","unsubscribed_from_emails":false,"language_override":"fr","custom_attributes":{"plan":"pro"},"companies":[{"company_id":"6","name":"Blue Sun"}],"tags":{"add":[{"id":"123"}]}}]}]}},"required":[],"additionalProperties":false,"definitions":{"intercom_version":{"description":"Intercom API version.</br>If you omit the header, the API uses the version set in your app package, and 1.0 if none is set.","type":"string","enum":["1.0","1.1","1.2","1.3","1.4","2.0","2.1","2.2","2.3","2.4","2.5","2.6","2.7","2.8","2.9","2.10","2.11","2.12","2.13","2.14","2.15","2.16","2.17"],"examples":["2.17"]},"bulk_create_contacts_request":{"title":"Bulk Create Contacts Request","type":"object","description":"Request body for bulk creating contacts.","required":["contacts"],"properties":{"contacts":{"type":"array","description":"An array of contact objects to create. Maximum 100 contacts per request.","maxItems":100,"items":{"type":"object","properties":{"external_id":{"type":"string","description":"A unique identifier for the contact which you have defined.","examples":["abc123"]},"email":{"type":"string","description":"The contact's email address.","examples":["joe@example.com"]},"email_verified":{"type":["boolean","null"],"description":"Whether the contact has proved they own this email address, for example through a confirmation link or one-time code you sent. Send it together with `email`. `email_verified` without `email` is rejected.\n\nChanging a contact's email resets it to not verified. Intercom reuses leads with a verified email when an inbound email, conversation or ticket matches the address.","examples":[true]},"name":{"type":"string","description":"The contact's name.","examples":["Joe Bloggs"]},"role":{"type":"string","description":"The contact's role. One of `user` or `lead`. Leads are exempt from the uniqueness check described above.","examples":["user"]},"phone":{"type":"string","description":"The contact's phone number."},"avatar":{"type":"string","description":"An image URL containing the avatar of the contact.","examples":["https://www.example.com/avatar_image.jpg"]},"language_override":{"type":"string","description":"A preferred language setting for the contact, used by the Intercom Messenger.","examples":["fr"]},"custom_attributes":{"type":"object","description":"Custom attributes to set on the contact."},"signed_up_at":{"type":"integer","description":"The time the contact signed up, in Unix timestamp format."},"last_seen_at":{"type":"integer","description":"The time the contact was last seen, in Unix timestamp format."},"owner_id":{"type":"string","description":"The ID of an admin that has been assigned account ownership of the contact.","examples":["321"]},"unsubscribed_from_emails":{"type":"boolean","description":"Whether the contact is unsubscribed from emails.","examples":[true]},"companies":{"type":"array","description":"A list of companies to associate with the contact. Each company is identified by the `company_id` you have defined. A company that does not exist is created, and one that already exists has the supplied attributes applied to it.","items":{"type":"object","required":["company_id"],"properties":{"company_id":{"type":"string","description":"The company ID you have defined for the company.","examples":["6"]},"name":{"type":"string","description":"The name of the company.","examples":["Blue Sun"]}}}},"tags":{"type":"object","description":"Tags to add to the contact. Each tag is identified by its `id`, which must be a positive integer for a tag that already exists in your workspace. Tag application is best-effort: unknown tag IDs are skipped while the rest of the contact create still applies. Per-tag results are not yet returned in the job status.\n","properties":{"add":{"type":"array","description":"Tags to add to the contact.","items":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"The ID of an existing tag to add to the contact.","examples":["123"]}}}}}}}}},"job":{"type":"object","description":"Optional. Include to append tasks to an existing job.","properties":{"id":{"type":"string","description":"The ID of an existing bulk job to append to.","examples":["job_v2_1"]}}}}}}},"name":"Bulk create contacts","id":"intercom.bulkcreatecontacts","example":{},"maxRequests":1,"summary":false}}