Topics are customer-scoped. List and detail calls can be filtered by channel so callers only receive topics that are applicable to the active email, chat, phone, WhatsApp or Teams context. Topic writes are settings operations, while topic actions, topic documents and page mappings link topics to the automation and prompt context used elsewhere in AnswerPal.
GET /api/Topics – Bearer JWT (TicketAccessOrPhoneAuth)channelId limits results to topics allowed for that channel; phone-auth requests use the token channel.GET /api/Topics/{id} – Bearer JWT (TicketAccessOrPhoneAuth)channelId applies the same channel allow-list and returns 404 when the topic is not allowed for that channel.POST /api/Topics – Bearer JWT (ManageSettings)PUT /api/Topics/{id} – Bearer JWT (ManageSettings)DELETE /api/Topics/{id} – Bearer JWT (ManageSettings)GET /api/TopicChannels – Bearer JWT (ManageSettings)topicId, channelId, pageNumber, pageSize, sortBy and sortOrder. pageNumber is normalized and pageSize is clamped to 1-100.GET /api/TopicChannels/{id} – Bearer JWT (ManageSettings)POST /api/TopicChannels – Bearer JWT (ManageSettings)POST /api/TopicChannels/bulk – Bearer JWT (ManageSettings)DELETE /api/TopicChannels/{id} – Bearer JWT (ManageSettings)DELETE /api/TopicChannels/bulk – Bearer JWT (ManageSettings)GET /api/TopicActions – Bearer JWTtopicId, actionId, hookName, channelId, isActive, pagination and sorting.GET /api/TopicActions/{id} – Bearer JWTPOST /api/TopicActions – Bearer JWTactionID for the reusable action definition and priority for execution order.POST /api/TopicActions/bulk – Bearer JWTPUT /api/TopicActions/{id} – Bearer JWTpriority field of an existing link.DELETE /api/TopicActions/{id} – Bearer JWTGET /api/TopicDocuments – Bearer JWTtopicId, documentId, channelId, hookName, isHook, pagination and sorting.GET /api/TopicDocuments/{id} – Bearer JWTPOST /api/TopicDocuments – Bearer JWTPOST /api/TopicDocuments/bulk – Bearer JWTPUT /api/TopicDocuments/{id} – Bearer JWTDELETE /api/TopicDocuments/{id} – Bearer JWTGET /api/PageTopicMappings – Bearer JWTGET /api/PageTopicMappings/{id} – Bearer JWTPOST /api/PageTopicMappings – Bearer JWTPUT /api/PageTopicMappings/{id} – Bearer JWTDELETE /api/PageTopicMappings/{id} – Bearer JWTPOST /api/ConditionalRules/from-text – Bearer JWTProtected AnswerPal API endpoints use JWT Bearer authentication. The topic list/detail routes can also accept phone-auth context through TicketAccessOrPhoneAuth; settings routes require ManageSettings.
PaginatedResult<T> with items, totalCount and totalPages.channelId returns 403.GET /api/Topics and GET /api/Topics/{id} return TopicDTO data. Use channelId when the caller needs the topic set that applies to a specific channel.
GET /api/Topics – Bearer JWT (TicketAccessOrPhoneAuth)channelId limits results to topics allowed for that channel; phone-auth requests use the token channel.GET /api/Topics/{id} – Bearer JWT (TicketAccessOrPhoneAuth)channelId applies the same channel allow-list and returns 404 when the topic is not allowed for that channel.POST /api/Topics – Bearer JWT (ManageSettings)PUT /api/Topics/{id} – Bearer JWT (ManageSettings)DELETE /api/Topics/{id} – Bearer JWT (ManageSettings)POST /api/Topics, PUT /api/Topics/{id} and DELETE /api/Topics/{id} require ManageSettings. The server owns customer scope and validates phone model overrides.
When a channel context is present, AnswerPal resolves the channel type and applies TopicChannels plus channel topic policy to determine allowed topics. Phone-auth calls cannot request a different channel than the token channel.
Topic custom field requirements are not stored directly on topics anymore. They are derived from the topic documents, global specialTopic=All documents and the channel context.
The relationship endpoints attach topics to channels, actions, documents and page URL context. They reuse the same channel scope pattern: either a concrete channelID or a specialChannel value.
TopicChannels define default relevance for a topic on one exact channel or one special channel type.
GET /api/TopicChannels – Bearer JWT (ManageSettings)topicId, channelId, pageNumber, pageSize, sortBy and sortOrder. pageNumber is normalized and pageSize is clamped to 1-100.GET /api/TopicChannels/{id} – Bearer JWT (ManageSettings)POST /api/TopicChannels – Bearer JWT (ManageSettings)POST /api/TopicChannels/bulk – Bearer JWT (ManageSettings)DELETE /api/TopicChannels/{id} – Bearer JWT (ManageSettings)DELETE /api/TopicChannels/bulk – Bearer JWT (ManageSettings)TopicActions attach reusable Actions to topics or topic/channel combinations. Priority belongs to the link, not to the Action definition.
GET /api/TopicActions – Bearer JWTtopicId, actionId, hookName, channelId, isActive, pagination and sorting.GET /api/TopicActions/{id} – Bearer JWTPOST /api/TopicActions – Bearer JWTactionID for the reusable action definition and priority for execution order.POST /api/TopicActions/bulk – Bearer JWTPUT /api/TopicActions/{id} – Bearer JWTpriority field of an existing link.DELETE /api/TopicActions/{id} – Bearer JWTTopicDocuments attach prompt documents to topics and channel scopes. The Documents API owns document definitions; this API owns the link.
GET /api/TopicDocuments – Bearer JWTtopicId, documentId, channelId, hookName, isHook, pagination and sorting.GET /api/TopicDocuments/{id} – Bearer JWTPOST /api/TopicDocuments – Bearer JWTPOST /api/TopicDocuments/bulk – Bearer JWTPUT /api/TopicDocuments/{id} – Bearer JWTDELETE /api/TopicDocuments/{id} – Bearer JWTPageTopicMappings map URL patterns to topics so web context can influence topic selection or automation.
GET /api/PageTopicMappings – Bearer JWTGET /api/PageTopicMappings/{id} – Bearer JWTPOST /api/PageTopicMappings – Bearer JWTPUT /api/PageTopicMappings/{id} – Bearer JWTDELETE /api/PageTopicMappings/{id} – Bearer JWTThis is a related helper for automation rules, not a topic CRUD endpoint.
POST /api/ConditionalRules/from-text – Bearer JWTTopicActions define which reusable automation actions run for a topic and channel scope.
GET /api/TopicActions – Bearer JWTtopicId, actionId, hookName, channelId, isActive, pagination and sorting.GET /api/TopicActions/{id} – Bearer JWTPOST /api/TopicActions – Bearer JWTactionID for the reusable action definition and priority for execution order.POST /api/TopicActions/bulk – Bearer JWTPUT /api/TopicActions/{id} – Bearer JWTpriority field of an existing link.DELETE /api/TopicActions/{id} – Bearer JWTtopicActionIDtopicID, specialTopictopicID; hook/event automation uses specialTopic and is covered on the Hooks page.actionIDpriorityPUT /api/TopicActions/{id}. Must be zero or greater.channelID, specialChannelEmail, Chat, Phone, WhatsApp, Teams and All.topicName, actionName, channelNamedocumentIDactionID for the action definition.TopicDocuments link prompt documents to topics or special topics. The current DTO is limited to topic/special-topic, document and channel/special-channel fields.
GET /api/TopicDocuments – Bearer JWTtopicId, documentId, channelId, hookName, isHook, pagination and sorting.GET /api/TopicDocuments/{id} – Bearer JWTPOST /api/TopicDocuments – Bearer JWTPOST /api/TopicDocuments/bulk – Bearer JWTPUT /api/TopicDocuments/{id} – Bearer JWTDELETE /api/TopicDocuments/{id} – Bearer JWTtopicDocumentIDtopicID, specialTopictopicID. Hook prompt context uses specialTopic and is covered by the Hooks page.documentIDchannelID, specialChannelspecialChannel must be Email, Chat, Phone, WhatsApp, Teams or All.customerID, topicName, documentName, channelNamePOST /api/Topics
{
"name": "Order status",
"description": "Questions about order tracking and delivery status",
"phoneSettings": {
"modelOverridesByCustomerType": {
"Lead": 12,
"Customer": 18
}
}
} POST /api/TopicChannels
{
"topicID": 101,
"specialChannel": "Email"
} POST /api/TopicActions
{
"topicID": 101,
"actionID": 55,
"priority": 10,
"specialChannel": "All"
} POST /api/TopicDocuments
{
"topicID": 101,
"documentID": 501,
"specialChannel": "All"
} POST /api/PageTopicMappings
{
"topicID": 101,
"urlPattern": "/pricing",
"matchType": "Contains",
"pathScope": "RelativePath",
"specialChannel": "Chat"
} PageTopicMappings attach URL patterns to topics, enabling page-aware topic selection for web and chat contexts.
GET /api/PageTopicMappings – Bearer JWTGET /api/PageTopicMappings/{id} – Bearer JWTPOST /api/PageTopicMappings – Bearer JWTPUT /api/PageTopicMappings/{id} – Bearer JWTDELETE /api/PageTopicMappings/{id} – Bearer JWTpageTopicMappingIDtopicID, specialTopicurlPatternmatchTypeExact, StartsWith, Contains or EndsWith.pathScopeDomain, Hostname, RelativePath or FullPath.channelID, specialChannelcustomerID, topicName, channelNamecreatedByCustomerRepID, creationDate, lastModifiedByCustomerRepID, lastModifiedDateThe examples below use the current DTO fields. Legacy topic-link fields that are no longer part of the DTOs are intentionally not shown.
topicIDname, descriptionphoneSettingscustomFieldRequirementsnamedescriptionphoneSettings.modelOverridesByCustomerTypeLead, Customer and Partner. Model IDs must be active and compatible with call usage for the customer/global catalog.customFieldRequirementscustomFieldDefinitionID, isRequiredfieldName, displayName, fieldType, descriptiontopicChannelIDtopicIDchannelID, specialChannelspecialChannel is normalized and must be Email, Chat, Phone, WhatsApp, Teams or All.customerID, topicName, channelNamemode/api/Channels/{id}/topic-policy, documented on the Channels page. Values are AllApplicableExcept and NoneExcept.includeTopicIds, excludeTopicIdstopicActionIDtopicID, specialTopictopicID; hook/event automation uses specialTopic and is covered on the Hooks page.actionIDpriorityPUT /api/TopicActions/{id}. Must be zero or greater.channelID, specialChannelEmail, Chat, Phone, WhatsApp, Teams and All.topicName, actionName, channelNamedocumentIDactionID for the action definition.pageTopicMappingIDtopicID, specialTopicurlPatternmatchTypeExact, StartsWith, Contains or EndsWith.pathScopeDomain, Hostname, RelativePath or FullPath.channelID, specialChannelcustomerID, topicName, channelNamecreatedByCustomerRepID, creationDate, lastModifiedByCustomerRepID, lastModifiedDatetopicDocumentIDtopicID, specialTopictopicID. Hook prompt context uses specialTopic and is covered by the Hooks page.documentIDchannelID, specialChannelspecialChannel must be Email, Chat, Phone, WhatsApp, Teams or All.customerID, topicName, documentName, channelNameProtected AnswerPal API endpoints use JWT Bearer authentication. The topic list/detail routes can also accept phone-auth context through TicketAccessOrPhoneAuth; settings routes require ManageSettings.
PaginatedResult<T> with items, totalCount and totalPages.channelId returns 403.Use the Example requests tab set above for copyable payloads.
Yes. GET /api/Topics and GET /api/Topics/{id} use TicketAccessOrPhoneAuth. Phone-auth requests are restricted to the token customer and channel.
They are derived from linked topic documents and specialTopic=All documents that match the topic and channel context. Sending customFieldRequirements on Topic create/update is legacy-compatible but ignored.
TopicChannels express default topic relevance for a channel or channel type. Channel topic policy, documented on the Channels page, adds include/exclude overrides for one concrete channel.
No. PUT /api/TopicActions/{id} currently updates priority only. Create a new link if the topic/action/channel combination needs to change.
AnswerPal: AI-powered customer service solutions to elevate your support and communication effortlessly.
For all support, sales, and partnership inquiries, email us at info@answerpal.eu
AnswerPal
Bisschoppenhoflaan 380
2100 Antwerp
Belgium
+32.36416685
BE 0862.692.858