Skip to content

Commit 8f369af

Browse files
Document update_tags bulk action on /content/bulk_actions (#554)
* Document update_tags bulk action on /content/bulk_actions (Preview) Add the sixth action, update_tags, to the content_bulk_action_request schema and the endpoint docs: action enum value, the tags request block (add_tag_ids/remove_tag_ids), and the new article content type. Documents the key asymmetry: update_tags addresses articles by the parent article id (not article_content), unlike the other five actions. Tags must already exist and be non-archived (else parameter_invalid, HTTP 422). Verified against intercom/intercom#524459. Other five actions unchanged. * Document 100 distinct-tag-id cap on update_tags (review fix) The controller caps the combined unique count of add_tag_ids + remove_tag_ids at MAX_TAG_IDS=100 (validate_tags_live!), rejecting excess with parameter_invalid/HTTP 422. Note the cap in the tags description prose (combined unique count, so not expressible as per-array maxItems).
1 parent e1aaee6 commit 8f369af

1 file changed

Lines changed: 43 additions & 1 deletion

File tree

descriptions/0/api.intercom.io.yaml

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9003,11 +9003,15 @@ paths:
90039003
description: |
90049004
Asynchronously run a bulk action over up to 1,000 Knowledge Hub content items.
90059005

9006-
Five actions are supported:
9006+
Six actions are supported:
90079007
* `publish` and `unpublish` — apply to `article_content` only.
90089008
* `delete` — permanently delete content (excludes synced sources and `external_content`).
90099009
* `set_availability` — toggle Fin AI Agent, Copilot, and Sales Agent availability flags.
90109010
* `set_audience` — manage segment membership on content.
9011+
* `update_tags` — apply and/or remove existing tags on content. Unlike the other
9012+
actions, `update_tags` addresses articles by the parent `article` id, not
9013+
`article_content`. Tags must already exist and not be archived; supply at least one of
9014+
`add_tag_ids` / `remove_tag_ids`.
90119015

90129016
The endpoint validates the request, enqueues background work, and returns 202 with a
90139017
placeholder envelope. Items whose `type` is not in the action's allowlist are silently
@@ -9111,6 +9115,18 @@ paths:
91119115
- 100
91129116
remove_segment_ids:
91139117
- 200
9118+
update_tags:
9119+
summary: Apply and remove tags on an article
9120+
value:
9121+
action: update_tags
9122+
content_ids:
9123+
- type: article
9124+
id: '12345678'
9125+
tags:
9126+
add_tag_ids:
9127+
- 100
9128+
remove_tag_ids:
9129+
- 200
91149130
"/content/search":
91159131
get:
91169132
summary: Search knowledge base contents
@@ -27148,12 +27164,14 @@ components:
2714827164
* `publish`, `unpublish`: `article_content`
2714927165
* `delete`: `article_content`, `content_snippet`, `file_source_content`, `internal_article`
2715027166
* `set_availability`, `set_audience`: `article_content`, `content_snippet`, `external_content`, `file_source_content`, `internal_article`
27167+
* `update_tags`: `article` (the parent Article id, not `article_content`), `content_snippet`, `external_content`, `file_source_content`, `internal_article`
2715127168
enum:
2715227169
- publish
2715327170
- unpublish
2715427171
- delete
2715527172
- set_availability
2715627173
- set_audience
27174+
- update_tags
2715727175
example: publish
2715827176
content_ids:
2715927177
type: array
@@ -27168,6 +27186,7 @@ components:
2716827186
type:
2716927187
type: string
2717027188
enum:
27189+
- article
2717127190
- article_content
2717227191
- content_snippet
2717327192
- external_content
@@ -27214,6 +27233,29 @@ components:
2721427233
type: boolean
2721527234
description: When `true`, removes all segments from the selected content.
2721627235
example: false
27236+
tags:
27237+
type: object
27238+
description: |
27239+
Required when `action` is `update_tags`. Applies and/or removes existing tags.
27240+
Supply at least one of `add_tag_ids` / `remove_tag_ids`. At most 100 distinct tag IDs
27241+
may be supplied across `add_tag_ids` and `remove_tag_ids` combined. Tag IDs must
27242+
reference existing, non-archived tags; exceeding the limit or referencing unknown or
27243+
archived IDs is rejected with `parameter_invalid` (HTTP 422).
27244+
properties:
27245+
add_tag_ids:
27246+
type: array
27247+
description: Tag IDs to apply to the selected content.
27248+
items:
27249+
type: integer
27250+
example:
27251+
- 100
27252+
remove_tag_ids:
27253+
type: array
27254+
description: Tag IDs to remove from the selected content.
27255+
items:
27256+
type: integer
27257+
example:
27258+
- 200
2721727259
content_bulk_action_response:
2721827260
title: Content Bulk Action Response Envelope
2721927261
type: object

0 commit comments

Comments
 (0)