Khoros · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Khoros Ai Conversations API
40 actions
40 updates
phrasing
extends
openapi/khoros-ai-conversations-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Khoros's API. It is a proposal applied on top of the contract, not a document Khoros publishes.
What the actions change
x-apievangelist-phrasing
Targets 40 · first 16 shown; the file carries all of them
$.info
$.paths['/{lswUuid}/conversations'].get
$.paths['/conversations/initiative/{initiative-id}/accountset'].get
$.paths['/conversations/asset'].post
$.paths['/conversations/asset?multipart'].post
$.paths['/conversations/asset/{assetId}'].get
$.paths['/conversations/asset/{assetId}'].put
$.paths['/conversations/folder'].get
$.paths['/conversations/folder'].post
$.paths['/conversations/folder/{folderId}'].get
$.paths['/conversations/folder/{folderId}'].put
$.paths['/conversations/folder/{folderId}'].delete
$.paths['/conversations/folder/{folderId}/assets'].get
$.paths['/conversations/calendar/customChannel'].get
$.paths['/conversations/calendar/customChannel'].post
$.paths['/conversations/calendar/customChannel/{customChannelId}'].get
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Khoros Ai Conversations API
version: 1.0.0
extends: openapi/khoros-ai-conversations-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-10-02'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 39
- target: $.paths['/{lswUuid}/conversations'].get
update:
x-apievangelist-phrasing:
intent: List a Care author's conversation IDs for a day
effect: read
questions:
- Which conversations did a specific Care author have during one 24-hour window?
- How do I get the conversation IDs tied to one customer author in Khoros Care?
- Can I limit an author's conversation ID lookup to a start and end time in epoch milliseconds?
instructions:
- text: Get the conversation IDs for Care author {author} between {start} and {end}.
slots:
author: path.lswUuid
start: query.startEpochMillis
end: query.endEpochMillis
- text: List today's conversation IDs for Care author {author}.
slots:
author: path.lswUuid
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/initiative/{initiative-id}/accountset'].get
update:
x-apievangelist-phrasing:
intent: List account sets and accounts for an initiative
effect: read
questions:
- Which account sets and social accounts can I post to inside a marketing initiative?
- What accounts are grouped under each account set for my initiative?
instructions:
- text: Show every account set and its accounts in initiative {initiative}.
slots:
initiative: path.initiative-id
- text: List the publishing accounts available to me in initiative {initiative}.
slots:
initiative: path.initiative-id
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/asset'].post
update:
x-apievangelist-phrasing:
intent: Create a text asset in the Content Center
effect: write
questions:
- How do I add a reusable text snippet to the Khoros Marketing Content Center?
- Can a text asset be limited to certain social networks and an availability window?
- Which folder does a new text asset have to go into?
instructions:
- text: Create a text asset named {name} in folder {folder} with the text {text}.
slots:
name: requestBody.name
folder: requestBody.folderId
text: requestBody.text
- text: Add a text asset to folder {folder} that is available from {start} until {end}.
slots:
folder: requestBody.folderId
start: requestBody.startDate
end: requestBody.endDate
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/asset?multipart'].post
update:
x-apievangelist-phrasing:
intent: Upload an image or video asset to the Content Center
effect: write
questions:
- Can I upload an image or video file as a Content Center asset?
- What do I need to upload a video asset for publishing and moderation?
instructions:
- text: Upload an image asset named {name} into Content Center folder {folder}.
slots:
name: requestBody.name
folder: requestBody.folderId
- text: Upload a video file as a Content Center asset in folder {folder} and mark it for publishing.
slots:
folder: requestBody.folderId
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/asset/{assetId}'].get
update:
x-apievangelist-phrasing:
intent: Get a Content Center asset by ID
effect: read
questions:
- How can I see the details and content labels of one Content Center asset?
- What does a single asset record show, including its labels?
instructions:
- text: Get Content Center asset {asset} with its content labels.
slots:
asset: path.assetId
- text: Show me the details of asset {asset}.
slots:
asset: path.assetId
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/asset/{assetId}'].put
update:
x-apievangelist-phrasing:
intent: Update an existing Content Center asset
effect: write
questions:
- Can I rename or move an existing Content Center asset to another folder?
- Is it possible to strip the image or video off an asset I already created?
instructions:
- text: Rename Content Center asset {asset} to {name}.
slots:
asset: path.assetId
name: requestBody.name
- text: Move asset {asset} into folder {folder}.
slots:
asset: path.assetId
folder: requestBody.folderId
- text: Remove the video from asset {asset}.
slots:
asset: path.assetId
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/folder'].get
update:
x-apievangelist-phrasing:
intent: List Content Center folders
effect: read
questions:
- What asset folders exist in our Khoros Marketing Content Center?
- Can I filter the Content Center folder list by name?
instructions:
- text: List all Content Center folders.
- text: Find Content Center folders whose name matches {name}.
slots:
name: query.nameFilter
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/folder'].post
update:
x-apievangelist-phrasing:
intent: Create a Content Center asset folder
effect: write
questions:
- How do I make a new custom folder to organize marketing assets?
- Can I give a new asset folder a description?
instructions:
- text: Create an asset folder called {name}.
slots:
name: requestBody.name
- text: Make a new Content Center folder {name} described as {description}.
slots:
name: requestBody.name
description: requestBody.description
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/folder/{folderId}'].get
update:
x-apievangelist-phrasing:
intent: Get a Content Center folder by ID
effect: read
questions:
- How do I look up one asset folder's name and description by its ID?
- What details come back for a single Content Center folder?
instructions:
- text: Get asset folder {folder}.
slots:
folder: path.folderId
- text: Show the name and description of Content Center folder {folder}.
slots:
folder: path.folderId
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/folder/{folderId}'].put
update:
x-apievangelist-phrasing:
intent: Rename or describe a Content Center folder
effect: write
questions:
- Can I rename an existing Content Center folder?
- How do I change the description on an asset folder I already have?
instructions:
- text: Rename asset folder {folder} to {name}.
slots:
folder: path.folderId
name: requestBody.name
- text: Update the description of Content Center folder {folder} to {description}.
slots:
folder: path.folderId
description: requestBody.description
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/folder/{folderId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a Content Center folder
effect: destructive
questions:
- Can I delete an asset folder from the Content Center?
- How do I get rid of a Content Center folder we no longer use?
instructions:
- text: Delete asset folder {folder}.
slots:
folder: path.folderId
- text: Remove Content Center folder {folder} permanently.
slots:
folder: path.folderId
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/folder/{folderId}/assets'].get
update:
x-apievangelist-phrasing:
intent: List the assets inside a folder
effect: read
questions:
- Which assets are stored in a particular Content Center folder?
- Can I sort the assets in a folder ascending or descending?
instructions:
- text: List the assets in folder {folder}.
slots:
folder: path.folderId
- text: Show assets in folder {folder} ordered by {order} {direction}.
slots:
folder: path.folderId
order: query.orderBy
direction: query.direction
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/calendar/customChannel'].get
update:
x-apievangelist-phrasing:
intent: List custom calendar channels
effect: read
questions:
- What custom channels are set up on our marketing calendar?
- Do we have any CustomChannels defined for non-social publishing?
instructions:
- text: List all CustomChannels.
- text: Show every custom channel on the marketing calendar.
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/calendar/customChannel'].post
update:
x-apievangelist-phrasing:
intent: Create a custom calendar channel
effect: write
questions:
- How do I add a custom channel, like a newsletter, to the Khoros marketing calendar?
- Can a new CustomChannel have a contact name and an image?
instructions:
- text: Create a CustomChannel named {name} of type {type}.
slots:
name: requestBody.name
type: requestBody.type
- text: Add a custom channel {name} with contact {contact}.
slots:
name: requestBody.name
contact: requestBody.contactName
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/calendar/customChannel/{customChannelId}'].get
update:
x-apievangelist-phrasing:
intent: Get a custom calendar channel by ID
effect: read
questions:
- How do I fetch one CustomChannel I created earlier?
- What are the name, type and contact of a specific custom channel?
instructions:
- text: Get CustomChannel {channel}.
slots:
channel: path.customChannelId
- text: Show the details of custom channel {channel}.
slots:
channel: path.customChannelId
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/calendar/customChannel/{customChannelId}'].put
update:
x-apievangelist-phrasing:
intent: Update a custom calendar channel
effect: write
questions:
- Can I rename a custom channel or change its contact person?
- How do I swap the image on an existing CustomChannel?
instructions:
- text: Rename CustomChannel {channel} to {name}.
slots:
channel: path.customChannelId
name: requestBody.name
- text: Change the contact on custom channel {channel} to {contact}.
slots:
channel: path.customChannelId
contact: requestBody.contactName
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/initiative/{initiativeId}/calendar/customChannelItem/{customChannelItemId}'].get
update:
x-apievangelist-phrasing:
intent: Get a custom channel calendar item
effect: read
questions:
- How do I look up one scheduled item on a custom channel?
- What title, text and publish date does a CustomChannelItem hold?
instructions:
- text: Get CustomChannelItem {item} in initiative {initiative}.
slots:
item: path.customChannelItemId
initiative: path.initiativeId
- text: Show calendar item {item} from initiative {initiative}.
slots:
item: path.customChannelItemId
initiative: path.initiativeId
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/initiative/{initiativeId}/calendar/customChannelItem/{customChannelItemId}'].put
update:
x-apievangelist-phrasing:
intent: Update a custom channel calendar item
effect: write
questions:
- Can I reschedule an existing custom channel item to a new publish date?
- How do I edit the title or text of a CustomChannelItem already on the calendar?
instructions:
- text: Reschedule CustomChannelItem {item} in initiative {initiative} to {date}.
slots:
item: path.customChannelItemId
initiative: path.initiativeId
date: requestBody.scheduledPublishDate
- text: Change the title of calendar item {item} in initiative {initiative} to {title}.
slots:
item: path.customChannelItemId
initiative: path.initiativeId
title: requestBody.title
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/initiative/{initiativeId}/calendar/customChannelItem/{customChannelItemId}'].post
update:
x-apievangelist-phrasing:
intent: Add an item to a custom channel calendar
effect: write
questions:
- How do I put a new piece of content on a custom channel in the marketing calendar?
- Can a new CustomChannelItem carry an image and a scheduled publish date?
instructions:
- text: Create CustomChannelItem {item} in initiative {initiative} titled {title}.
slots:
item: path.customChannelItemId
initiative: path.initiativeId
title: requestBody.title
- text: Add a new custom channel item {item} to initiative {initiative} scheduled for {date}.
slots:
item: path.customChannelItemId
initiative: path.initiativeId
date: requestBody.scheduledPublishDate
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/calendar/messages'].get
update:
x-apievangelist-phrasing:
intent: List calendar messages posted or scheduled
effect: read
questions:
- Which social messages are published or scheduled on our marketing calendar?
- Can I filter calendar messages by initiative, plan and date range?
- How many calendar messages come back per page, and what is the maximum?
instructions:
- text: List calendar messages published between {start} and {end}.
slots:
start: query.startDate
end: query.endDate
- text: Show scheduled and posted messages for plans {plans}.
slots:
plans: query.planIds
- text: List calendar messages in initiatives {initiatives}, {per_page} per page.
slots:
initiatives: query.initiativeIds
per_page: query.perPage
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/initiative'].get
update:
x-apievangelist-phrasing:
intent: List marketing initiatives
effect: read
questions:
- What initiatives does our company have in Khoros Marketing?
- Can I search initiatives by name?
instructions:
- text: List all initiatives for my company.
- text: Find initiatives named like {name}.
slots:
name: query.nameFilter
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/initiative/{initiativeId}'].get
update:
x-apievangelist-phrasing:
intent: Get one marketing initiative
effect: read
questions:
- How do I see the details of a single initiative?
- What information is stored on one marketing initiative?
instructions:
- text: Get initiative {initiative}.
slots:
initiative: path.initiativeId
- text: Show me the details of marketing initiative {initiative}.
slots:
initiative: path.initiativeId
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/initiative/{initiativeId}/contentLabel'].get
update:
x-apievangelist-phrasing:
intent: List content labels in an initiative
effect: read
questions:
- Which content labels can I tag messages with in an initiative?
- Can I list only the top labels, or search labels by text?
instructions:
- text: List content labels in initiative {initiative}.
slots:
initiative: path.initiativeId
- text: Search labels in initiative {initiative} matching {text}.
slots:
initiative: path.initiativeId
text: query.q
- text: Show only the top labels for initiative {initiative}.
slots:
initiative: path.initiativeId
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/initiative/{initiativeId}/message'].post
update:
x-apievangelist-phrasing:
intent: Publish an image-set message to social
effect: write
questions:
- How do I publish a post with a set of images through Khoros Marketing?
- Can I schedule an image-set message for later instead of posting now?
instructions:
- text: Publish an image-set message titled {title} to {network} in initiative {initiative}.
slots:
title: requestBody.title
network: requestBody.service
initiative: path.initiativeId
- text: Schedule an image-set post in initiative {initiative} for {date}.
slots:
initiative: path.initiativeId
date: requestBody.scheduledPublishDate
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/initiative/{initiativeId}/message/{messageId}'].get
update:
x-apievangelist-phrasing:
intent: Get a published or scheduled message
effect: read
questions:
- How do I check the status and content of a message I published?
- What publication results are stored on an existing marketing message?
instructions:
- text: Get message {message} in initiative {initiative}.
slots:
message: path.messageId
initiative: path.initiativeId
- text: Show the status of marketing message {message} from initiative {initiative}.
slots:
message: path.messageId
initiative: path.initiativeId
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/initiative/{initiativeId}/message/{messageId}'].put
update:
x-apievangelist-phrasing:
intent: Edit an existing social message
effect: write
questions:
- Can I change the title or labels of a message after creating it?
- How do I move a standard message to a different scheduled time?
instructions:
- text: Change the title of message {message} in initiative {initiative} to {title}.
slots:
message: path.messageId
initiative: path.initiativeId
title: requestBody.title
- text: Reschedule message {message} in initiative {initiative} for {date}.
slots:
message: path.messageId
initiative: path.initiativeId
date: requestBody.scheduledPublishDate
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/initiative/{initiativeId}/message/{messageId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a marketing message
effect: destructive
questions:
- Can I delete a message I scheduled by mistake?
- How do I remove a marketing message from an initiative?
instructions:
- text: Delete message {message} from initiative {initiative}.
slots:
message: path.messageId
initiative: path.initiativeId
- text: Remove scheduled message {message} in initiative {initiative}.
slots:
message: path.messageId
initiative: path.initiativeId
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/initiative/{initiativeId}/message?multipart'].post
update:
x-apievangelist-phrasing:
intent: Publish a message with an uploaded file
effect: write
questions:
- How do I publish a social post and upload its media in the same multipart request?
- Can a multipart message be saved as a draft instead of published?
instructions:
- text: Publish a multipart message with an attached file to {network} in initiative {initiative}.
slots:
network: requestBody.service
initiative: path.initiativeId
- text: Create a multipart draft message titled {title} in initiative {initiative}.
slots:
title: requestBody.title
initiative: path.initiativeId
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/initiative/{initiativeId}/message/{messageId}?multipart'].put
update:
x-apievangelist-phrasing:
intent: Update a multipart message and its media
effect: write
questions:
- Can I replace the uploaded file on a multipart message I already created?
- How do I edit a multi-part message rather than a plain one?
instructions:
- text: Update multipart message {message} in initiative {initiative} with a new file.
slots:
message: path.messageId
initiative: path.initiativeId
- text: Retitle multi-part message {message} in initiative {initiative} to {title}.
slots:
message: path.messageId
initiative: path.initiativeId
title: requestBody.title
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/initiative/{initiativeId}/multiChannelMessage/{messageId}'].get
update:
x-apievangelist-phrasing:
intent: Get a multi-channel message
effect: read
questions:
- How do I look up a message that was published across several channels at once?
- What does a multi-channel message record contain?
instructions:
- text: Get multi-channel message {message} in initiative {initiative}.
slots:
message: path.messageId
initiative: path.initiativeId
- text: Show the cross-channel message {message} from initiative {initiative}.
slots:
message: path.messageId
initiative: path.initiativeId
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/privilege'].get
update:
x-apievangelist-phrasing:
intent: List my permissions in the current company
effect: read
questions:
- What am I allowed to do in the currently selected Khoros Marketing company?
- Which privileges does my user have?
instructions:
- text: List my permissions in the current company.
- text: Show the privileges granted to the current user.
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/initiative/{initiativeId}/plan'].get
update:
x-apievangelist-phrasing:
intent: List plans in an initiative
effect: read
questions:
- Which campaign plans exist under one initiative?
- Can I search an initiative's plans by name?
instructions:
- text: List the plans in initiative {initiative}.
slots:
initiative: path.initiativeId
- text: Find plans in initiative {initiative} named like {name}.
slots:
initiative: path.initiativeId
name: query.nameFilter
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/roles'].get
update:
x-apievangelist-phrasing:
intent: List user roles for the company
effect: read
questions:
- What user roles are defined for our company?
- Which role IDs can I assign when creating a user?
instructions:
- text: List the roles in my company.
- text: Show page {page} of company roles.
slots:
page: query.pageNumber
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/users/initiative/{initiativeId}/publishers'].get
update:
x-apievangelist-phrasing:
intent: List publishers for an initiative
effect: read
questions:
- Who can publish messages in a given initiative?
- Which users are publishers on one initiative?
instructions:
- text: List the publishers for initiative {initiative}.
slots:
initiative: path.initiativeId
- text: Show who is allowed to publish in initiative {initiative}.
slots:
initiative: path.initiativeId
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/user/{userId}'].delete
update:
x-apievangelist-phrasing:
intent: Remove a user from the company
effect: destructive
questions:
- How do I remove someone's user account from our Khoros Marketing company?
- Can I delete a user who has left the team?
instructions:
- text: Delete user {user} from the company.
slots:
user: path.userId
- text: Remove company user {user}.
slots:
user: path.userId
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/user'].post
update:
x-apievangelist-phrasing:
intent: Add a new user to the company
effect: write
questions:
- How do I add a new teammate as a user with a role and workspace?
- Can a new user be sent an invitation email with a custom message?
- Is it possible to auto-add a new user to future initiatives and account sets?
instructions:
- text: Create user {email} named {first} {last} with role {role} in workspace {workspace}.
slots:
email: requestBody.email
first: requestBody.firstName
last: requestBody.lastName
role: requestBody.roleId
workspace: requestBody.workspaceId
- text: Add {email} as a user and send them an invite with the message {message}.
slots:
email: requestBody.email
message: requestBody.inviteMessage
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/users'].get
update:
x-apievangelist-phrasing:
intent: List users in the company
effect: read
questions:
- Who are the users in our Khoros Marketing company?
- Can I search users by first name, last name or email?
instructions:
- text: List all users in the company.
- text: Find users matching {search}.
slots:
search: query.nameEmailFilter
method: generated
generated: '2026-10-01'
- target: $.paths['/conversations/initiative/{initiativeId}/video/captions'].post
update:
x-apievangelist-phrasing:
intent: Upload captions for a video
effect: write
questions:
- How do I attach SRT captions to a video post?
- What file naming does a video captions upload require?
instructions:
- text: Upload the SRT captions file {file} for a video in initiative {initiativeId}.
slots:
file: requestBody.captions
initiativeId: path.initiativeId
- text: Create a video captions object from {file} under initiative {initiativeId}.
slots:
file: requestBody.captions
initiativeId: path.initiativeId
method: generated
generated: '2026-10-02'
- target: $.paths['/conversations/workspaces'].get
update:
x-apievangelist-phrasing:
intent: List workspaces for the company
effect: read
questions:
- What workspaces does our company have?
- Which workspace IDs can I put a new user in?
instructions:
- text: List the workspaces in my company.
- text: Show page {page} of company workspaces.
slots:
page: query.pageNumber
method: generated
generated: '2026-10-01'