Asynchronously run a bulk action over up to 1,000 Knowledge Hub content items.
Six actions are supported:
publishandunpublish— apply toarticle_contentonly.delete— permanently delete content (excludes synced sources andexternal_content).set_availability— toggle Fin AI Agent, Copilot, and Sales Agent availability flags.set_audience— manage segment membership on content.update_tags— apply and/or remove existing tags on content. Unlike the other actions,update_tagsaddresses articles by the parentarticleid, notarticle_content. Tags must already exist and not be archived; supply at least one ofadd_tag_ids/remove_tag_ids.
The endpoint validates the request, enqueues background work, and returns 202 with a placeholder envelope. Items whose type is not in the action's allowlist are silently dropped before processing. Articles imported from synced sources (Confluence, Notion, Zendesk, Salesforce Knowledge, etc.) are silently skipped on delete — they can only be removed by disconnecting the underlying import source.
Requires the write_content OAuth scope.
Intercom API version.
By default, it's equal to the version set in the app package.
The bulk action to perform. Allowed content_ids[].type values vary per action:
publish,unpublish:article_contentdelete:article_content,content_snippet,file_source_content,internal_articleset_availability,set_audience:article_content,content_snippet,external_content,file_source_content,internal_articleupdate_tags:article(the parent Article id, notarticle_content),content_snippet,external_content,file_source_content,internal_article
Required when action is set_availability. Each field is optional — only the properties present in the request are toggled.
- The production API serverhttps://api.intercom.io/content/bulk_actions
- The european API serverhttps://api.eu.intercom.io/content/bulk_actions
- The australian API serverhttps://api.au.intercom.io/content/bulk_actions
- Publish articles
- Unpublish articles
- Delete content across types
- Toggle Fin AI Agent on, Copilot off
- Add and remove segments
- Apply and remove tags on an article
using System;
using System.Net.Http;
using System.Threading.Tasks;
using System.Text;
using System.Text.Json;
public class Program
{
public static async Task Main()
{
System.Net.Http.HttpClient client = new()
{
DefaultRequestHeaders =
{
{"Intercom-Version", "2.16"},
{"Authorization", "Bearer <YOUR_TOKEN_HERE>"},
}
};
string json = JsonSerializer.Serialize(new
{
action = "publish",
content_ids = new[] {
new {
type = "article_content",
id = "12345678"
},
new {
type = "article_content",
id = "12345679"
}
},
});
using StringContent postData = new(json, Encoding.UTF8, "application/json");
using HttpResponseMessage request = await client.PostAsync("https://api.intercom.io/content/bulk_actions", postData);
string response = await request.Content.ReadAsStringAsync();
Console.WriteLine(response);
}
}{ "type": "content_bulk_action", "status": "queued" }