Skip to content

Commit 46ba315

Browse files
authored
feat(tools): added more intercom tools (#3022)
1 parent 077e702 commit 46ba315

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+2966
-115
lines changed

apps/docs/content/docs/en/tools/intercom.mdx

Lines changed: 372 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -647,6 +647,42 @@ Retrieve a single ticket by ID from Intercom. Returns API-aligned fields only.
647647
| `ticketId` | string | ID of the retrieved ticket |
648648
| `success` | boolean | Operation success status |
649649

650+
### `intercom_update_ticket`
651+
652+
Update a ticket in Intercom (change state, assignment, attributes)
653+
654+
#### Input
655+
656+
| Parameter | Type | Required | Description |
657+
| --------- | ---- | -------- | ----------- |
658+
| `ticketId` | string | Yes | The ID of the ticket to update |
659+
| `ticket_attributes` | string | No | JSON object with ticket attributes \(e.g., \{"_default_title_":"New Title","_default_description_":"Updated description"\}\) |
660+
| `open` | boolean | No | Set to false to close the ticket, true to keep it open |
661+
| `is_shared` | boolean | No | Whether the ticket is visible to users |
662+
| `snoozed_until` | number | No | Unix timestamp for when the ticket should reopen |
663+
| `admin_id` | string | No | The ID of the admin performing the update \(needed for workflows and attribution\) |
664+
| `assignee_id` | string | No | The ID of the admin or team to assign the ticket to. Set to "0" to unassign. |
665+
666+
#### Output
667+
668+
| Parameter | Type | Description |
669+
| --------- | ---- | ----------- |
670+
| `ticket` | object | The updated ticket object |
671+
|`id` | string | Unique identifier for the ticket |
672+
|`type` | string | Object type \(ticket\) |
673+
|`ticket_id` | string | Ticket ID shown in Intercom UI |
674+
|`ticket_state` | string | State of the ticket |
675+
|`ticket_attributes` | object | Attributes of the ticket |
676+
|`open` | boolean | Whether the ticket is open |
677+
|`is_shared` | boolean | Whether the ticket is visible to users |
678+
|`snoozed_until` | number | Unix timestamp when ticket will reopen |
679+
|`admin_assignee_id` | string | ID of assigned admin |
680+
|`team_assignee_id` | string | ID of assigned team |
681+
|`created_at` | number | Unix timestamp when ticket was created |
682+
|`updated_at` | number | Unix timestamp when ticket was last updated |
683+
| `ticketId` | string | ID of the updated ticket |
684+
| `ticket_state` | string | Current state of the ticket |
685+
650686
### `intercom_create_message`
651687

652688
Create and send a new admin-initiated message in Intercom. Returns API-aligned fields only.
@@ -680,4 +716,340 @@ Create and send a new admin-initiated message in Intercom. Returns API-aligned f
680716
| `messageId` | string | ID of the created message |
681717
| `success` | boolean | Operation success status |
682718

719+
### `intercom_list_admins`
720+
721+
Fetch a list of all admins for the workspace
722+
723+
#### Input
724+
725+
| Parameter | Type | Required | Description |
726+
| --------- | ---- | -------- | ----------- |
727+
728+
#### Output
729+
730+
| Parameter | Type | Description |
731+
| --------- | ---- | ----------- |
732+
| `admins` | array | Array of admin objects |
733+
|`id` | string | Unique identifier for the admin |
734+
|`type` | string | Object type \(admin\) |
735+
|`name` | string | Name of the admin |
736+
|`email` | string | Email of the admin |
737+
|`job_title` | string | Job title of the admin |
738+
|`away_mode_enabled` | boolean | Whether admin is in away mode |
739+
|`away_mode_reassign` | boolean | Whether to reassign conversations when away |
740+
|`has_inbox_seat` | boolean | Whether admin has a paid inbox seat |
741+
|`team_ids` | array | List of team IDs the admin belongs to |
742+
|`avatar` | object | Avatar information |
743+
|`email_verified` | boolean | Whether email is verified |
744+
| `type` | string | Object type \(admin.list\) |
745+
746+
### `intercom_close_conversation`
747+
748+
Close a conversation in Intercom
749+
750+
#### Input
751+
752+
| Parameter | Type | Required | Description |
753+
| --------- | ---- | -------- | ----------- |
754+
| `conversationId` | string | Yes | The ID of the conversation to close |
755+
| `admin_id` | string | Yes | The ID of the admin performing the action |
756+
| `body` | string | No | Optional closing message to add to the conversation |
757+
758+
#### Output
759+
760+
| Parameter | Type | Description |
761+
| --------- | ---- | ----------- |
762+
| `conversation` | object | The closed conversation object |
763+
|`id` | string | Unique identifier for the conversation |
764+
|`type` | string | Object type \(conversation\) |
765+
|`state` | string | State of the conversation \(closed\) |
766+
|`open` | boolean | Whether the conversation is open \(false\) |
767+
|`read` | boolean | Whether the conversation has been read |
768+
|`created_at` | number | Unix timestamp when conversation was created |
769+
|`updated_at` | number | Unix timestamp when conversation was last updated |
770+
| `conversationId` | string | ID of the closed conversation |
771+
| `state` | string | State of the conversation \(closed\) |
772+
773+
### `intercom_open_conversation`
774+
775+
Open a closed or snoozed conversation in Intercom
776+
777+
#### Input
778+
779+
| Parameter | Type | Required | Description |
780+
| --------- | ---- | -------- | ----------- |
781+
| `conversationId` | string | Yes | The ID of the conversation to open |
782+
| `admin_id` | string | Yes | The ID of the admin performing the action |
783+
784+
#### Output
785+
786+
| Parameter | Type | Description |
787+
| --------- | ---- | ----------- |
788+
| `conversation` | object | The opened conversation object |
789+
|`id` | string | Unique identifier for the conversation |
790+
|`type` | string | Object type \(conversation\) |
791+
|`state` | string | State of the conversation \(open\) |
792+
|`open` | boolean | Whether the conversation is open \(true\) |
793+
|`read` | boolean | Whether the conversation has been read |
794+
|`created_at` | number | Unix timestamp when conversation was created |
795+
|`updated_at` | number | Unix timestamp when conversation was last updated |
796+
| `conversationId` | string | ID of the opened conversation |
797+
| `state` | string | State of the conversation \(open\) |
798+
799+
### `intercom_snooze_conversation`
800+
801+
Snooze a conversation to reopen at a future time
802+
803+
#### Input
804+
805+
| Parameter | Type | Required | Description |
806+
| --------- | ---- | -------- | ----------- |
807+
| `conversationId` | string | Yes | The ID of the conversation to snooze |
808+
| `admin_id` | string | Yes | The ID of the admin performing the action |
809+
| `snoozed_until` | number | Yes | Unix timestamp for when the conversation should reopen |
810+
811+
#### Output
812+
813+
| Parameter | Type | Description |
814+
| --------- | ---- | ----------- |
815+
| `conversation` | object | The snoozed conversation object |
816+
|`id` | string | Unique identifier for the conversation |
817+
|`type` | string | Object type \(conversation\) |
818+
|`state` | string | State of the conversation \(snoozed\) |
819+
|`open` | boolean | Whether the conversation is open |
820+
|`snoozed_until` | number | Unix timestamp when conversation will reopen |
821+
|`created_at` | number | Unix timestamp when conversation was created |
822+
|`updated_at` | number | Unix timestamp when conversation was last updated |
823+
| `conversationId` | string | ID of the snoozed conversation |
824+
| `state` | string | State of the conversation \(snoozed\) |
825+
| `snoozed_until` | number | Unix timestamp when conversation will reopen |
826+
827+
### `intercom_assign_conversation`
828+
829+
Assign a conversation to an admin or team in Intercom
830+
831+
#### Input
832+
833+
| Parameter | Type | Required | Description |
834+
| --------- | ---- | -------- | ----------- |
835+
| `conversationId` | string | Yes | The ID of the conversation to assign |
836+
| `admin_id` | string | Yes | The ID of the admin performing the assignment |
837+
| `assignee_id` | string | Yes | The ID of the admin or team to assign the conversation to. Set to "0" to unassign. |
838+
| `body` | string | No | Optional message to add when assigning \(e.g., "Passing to the support team"\) |
839+
840+
#### Output
841+
842+
| Parameter | Type | Description |
843+
| --------- | ---- | ----------- |
844+
| `conversation` | object | The assigned conversation object |
845+
|`id` | string | Unique identifier for the conversation |
846+
|`type` | string | Object type \(conversation\) |
847+
|`state` | string | State of the conversation |
848+
|`open` | boolean | Whether the conversation is open |
849+
|`admin_assignee_id` | number | ID of the assigned admin |
850+
|`team_assignee_id` | string | ID of the assigned team |
851+
|`created_at` | number | Unix timestamp when conversation was created |
852+
|`updated_at` | number | Unix timestamp when conversation was last updated |
853+
| `conversationId` | string | ID of the assigned conversation |
854+
| `admin_assignee_id` | number | ID of the assigned admin |
855+
| `team_assignee_id` | string | ID of the assigned team |
856+
857+
### `intercom_list_tags`
858+
859+
Fetch a list of all tags in the workspace
860+
861+
#### Input
862+
863+
| Parameter | Type | Required | Description |
864+
| --------- | ---- | -------- | ----------- |
865+
866+
#### Output
867+
868+
| Parameter | Type | Description |
869+
| --------- | ---- | ----------- |
870+
| `tags` | array | Array of tag objects |
871+
|`id` | string | Unique identifier for the tag |
872+
|`type` | string | Object type \(tag\) |
873+
|`name` | string | Name of the tag |
874+
| `type` | string | Object type \(list\) |
875+
876+
### `intercom_create_tag`
877+
878+
Create a new tag or update an existing tag name
879+
880+
#### Input
881+
882+
| Parameter | Type | Required | Description |
883+
| --------- | ---- | -------- | ----------- |
884+
| `name` | string | Yes | The name of the tag. Will create a new tag if not found, or update the name if id is provided. |
885+
| `id` | string | No | The ID of an existing tag to update. Omit to create a new tag. |
886+
887+
#### Output
888+
889+
| Parameter | Type | Description |
890+
| --------- | ---- | ----------- |
891+
| `id` | string | Unique identifier for the tag |
892+
| `name` | string | Name of the tag |
893+
| `type` | string | Object type \(tag\) |
894+
895+
### `intercom_tag_contact`
896+
897+
Add a tag to a specific contact
898+
899+
#### Input
900+
901+
| Parameter | Type | Required | Description |
902+
| --------- | ---- | -------- | ----------- |
903+
| `contactId` | string | Yes | The ID of the contact to tag |
904+
| `tagId` | string | Yes | The ID of the tag to apply |
905+
906+
#### Output
907+
908+
| Parameter | Type | Description |
909+
| --------- | ---- | ----------- |
910+
| `id` | string | Unique identifier for the tag |
911+
| `name` | string | Name of the tag |
912+
| `type` | string | Object type \(tag\) |
913+
914+
### `intercom_untag_contact`
915+
916+
Remove a tag from a specific contact
917+
918+
#### Input
919+
920+
| Parameter | Type | Required | Description |
921+
| --------- | ---- | -------- | ----------- |
922+
| `contactId` | string | Yes | The ID of the contact to untag |
923+
| `tagId` | string | Yes | The ID of the tag to remove |
924+
925+
#### Output
926+
927+
| Parameter | Type | Description |
928+
| --------- | ---- | ----------- |
929+
| `id` | string | Unique identifier for the tag that was removed |
930+
| `name` | string | Name of the tag that was removed |
931+
| `type` | string | Object type \(tag\) |
932+
933+
### `intercom_tag_conversation`
934+
935+
Add a tag to a specific conversation
936+
937+
#### Input
938+
939+
| Parameter | Type | Required | Description |
940+
| --------- | ---- | -------- | ----------- |
941+
| `conversationId` | string | Yes | The ID of the conversation to tag |
942+
| `tagId` | string | Yes | The ID of the tag to apply |
943+
| `admin_id` | string | Yes | The ID of the admin applying the tag |
944+
945+
#### Output
946+
947+
| Parameter | Type | Description |
948+
| --------- | ---- | ----------- |
949+
| `id` | string | Unique identifier for the tag |
950+
| `name` | string | Name of the tag |
951+
| `type` | string | Object type \(tag\) |
952+
953+
### `intercom_create_note`
954+
955+
Add a note to a specific contact
956+
957+
#### Input
958+
959+
| Parameter | Type | Required | Description |
960+
| --------- | ---- | -------- | ----------- |
961+
| `contactId` | string | Yes | The ID of the contact to add the note to |
962+
| `body` | string | Yes | The text content of the note |
963+
| `admin_id` | string | No | The ID of the admin creating the note |
964+
965+
#### Output
966+
967+
| Parameter | Type | Description |
968+
| --------- | ---- | ----------- |
969+
| `id` | string | Unique identifier for the note |
970+
| `body` | string | The text content of the note |
971+
| `created_at` | number | Unix timestamp when the note was created |
972+
| `type` | string | Object type \(note\) |
973+
| `author` | object | The admin who created the note |
974+
|`type` | string | Author type \(admin\) |
975+
|`id` | string | Author ID |
976+
|`name` | string | Author name |
977+
|`email` | string | Author email |
978+
| `contact` | object | The contact the note was created for |
979+
|`type` | string | Contact type |
980+
|`id` | string | Contact ID |
981+
982+
### `intercom_create_event`
983+
984+
Track a custom event for a contact in Intercom
985+
986+
#### Input
987+
988+
| Parameter | Type | Required | Description |
989+
| --------- | ---- | -------- | ----------- |
990+
| `event_name` | string | Yes | The name of the event \(e.g., "order-completed"\). Use past-tense verb-noun format for readability. |
991+
| `created_at` | number | No | Unix timestamp for when the event occurred. Strongly recommended for uniqueness. |
992+
| `user_id` | string | No | Your identifier for the user \(external_id\) |
993+
| `email` | string | No | Email address of the user. Use only if your app uses email to uniquely identify users. |
994+
| `id` | string | No | The Intercom contact ID |
995+
| `metadata` | string | No | JSON object with up to 10 metadata key-value pairs about the event \(e.g., \{"order_value": 99.99\}\) |
996+
997+
#### Output
998+
999+
| Parameter | Type | Description |
1000+
| --------- | ---- | ----------- |
1001+
| `accepted` | boolean | Whether the event was accepted \(202 Accepted\) |
1002+
1003+
### `intercom_attach_contact_to_company`
1004+
1005+
Attach a contact to a company in Intercom
1006+
1007+
#### Input
1008+
1009+
| Parameter | Type | Required | Description |
1010+
| --------- | ---- | -------- | ----------- |
1011+
| `contactId` | string | Yes | The ID of the contact to attach to the company |
1012+
| `companyId` | string | Yes | The ID of the company to attach the contact to |
1013+
1014+
#### Output
1015+
1016+
| Parameter | Type | Description |
1017+
| --------- | ---- | ----------- |
1018+
| `company` | object | The company object the contact was attached to |
1019+
|`id` | string | Unique identifier for the company |
1020+
|`type` | string | Object type \(company\) |
1021+
|`company_id` | string | The company_id you defined |
1022+
|`name` | string | Name of the company |
1023+
|`created_at` | number | Unix timestamp when company was created |
1024+
|`updated_at` | number | Unix timestamp when company was updated |
1025+
|`user_count` | number | Number of users in the company |
1026+
|`session_count` | number | Number of sessions |
1027+
|`monthly_spend` | number | Monthly spend amount |
1028+
|`plan` | object | Company plan details |
1029+
| `companyId` | string | ID of the company |
1030+
| `name` | string | Name of the company |
1031+
1032+
### `intercom_detach_contact_from_company`
1033+
1034+
Remove a contact from a company in Intercom
1035+
1036+
#### Input
1037+
1038+
| Parameter | Type | Required | Description |
1039+
| --------- | ---- | -------- | ----------- |
1040+
| `contactId` | string | Yes | The ID of the contact to detach from the company |
1041+
| `companyId` | string | Yes | The ID of the company to detach the contact from |
1042+
1043+
#### Output
1044+
1045+
| Parameter | Type | Description |
1046+
| --------- | ---- | ----------- |
1047+
| `company` | object | The company object the contact was detached from |
1048+
|`id` | string | Unique identifier for the company |
1049+
|`type` | string | Object type \(company\) |
1050+
|`company_id` | string | The company_id you defined |
1051+
|`name` | string | Name of the company |
1052+
| `companyId` | string | ID of the company |
1053+
| `name` | string | Name of the company |
1054+
6831055

0 commit comments

Comments
 (0)