# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Showpad Channels API version: 1.0.0 extends: openapi/showpad-channels-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: 29 - target: $.paths['/channels.json'].get update: x-apievangelist-phrasing: intent: List channels (experiences) effect: read questions: - Which channels exist in our Showpad content library? - Can I list only hidden channels, or include template channels in the results? - What filters are available when browsing all channels, like personal or by type? instructions: - text: List all channels. - text: List channels named {name}. slots: name: query.name - text: Show channels of type {type}, including template channels. slots: type: query.type method: generated generated: '2026-10-01' - target: $.paths['/channels.json'].post update: x-apievangelist-phrasing: intent: Create a channel effect: write questions: - How do I create a new channel for my sales team's content? - Can a newly created channel start out hidden from users? instructions: - text: Create a channel called {name}. slots: name: requestBody.name - text: Create a channel named {name} with hidden set to {isHidden} and description {description}. slots: name: requestBody.name isHidden: requestBody.isHidden description: requestBody.description method: generated generated: '2026-10-01' - target: $.paths['/channels/count.json'].get update: x-apievangelist-phrasing: intent: Count channels effect: read questions: - How many channels do we have in total? - What's the number of personal channels versus shared ones? instructions: - text: Count all channels. - text: Count the channels with personal set to {isPersonal}. slots: isPersonal: query.isPersonal method: generated generated: '2026-10-01' - target: $.paths['/channels/description.json'].get update: x-apievangelist-phrasing: intent: Describe the channel data model effect: read questions: - What fields does a channel object have and which calls apply to it? - Where can I see the schema and available API calls for channels? instructions: - text: Describe the channel model and its available API calls. - text: Show me the property definitions for the channel resource. method: generated generated: '2026-10-01' - target: $.paths['/channels/experience-types.json'].get update: x-apievangelist-phrasing: intent: List installed experience types effect: read questions: - Which experience types are installed in our Showpad instance? - What kinds of experiences can I build channels from? instructions: - text: List the installed experience types. - text: Show every experience type available for channels. method: generated generated: '2026-10-01' - target: $.paths['/channels/experience-types/{experienceTypeId}/modules/{moduleName}'].get update: x-apievangelist-phrasing: intent: Get an experience type module's info effect: read questions: - How do I look up the details of a specific module inside an experience type? - What information is exposed about an experience type's module? instructions: - text: Get the info for module {moduleName} of experience type {experienceTypeId}. slots: moduleName: path.moduleName experienceTypeId: path.experienceTypeId - text: Show how the {moduleName} module is configured in experience type {experienceTypeId}. slots: moduleName: path.moduleName experienceTypeId: path.experienceTypeId method: generated generated: '2026-10-02' - target: $.paths['/channels/overview.json'].get update: x-apievangelist-phrasing: intent: Get a channel overview for a division effect: read questions: - Can I get a summary of all experiences in one division? - What does the channel overview show for a given division? instructions: - text: Get the channel overview for division {divisionId}. slots: divisionId: query.divisionId - text: Show me an overview of the experiences in division {divisionId}. slots: divisionId: query.divisionId method: generated generated: '2026-10-01' - target: $.paths['/channels/{id1}/usergroups/{id2}.json'].get update: x-apievangelist-phrasing: intent: Link or unlink a channel and group via GET effect: write questions: - Is there a GET-based way to link or unlink a channel and a user group for clients that can't send POST? - Can I toggle a channel's user group assignment using the method override parameter? instructions: - text: Use method {method} to change the link between channel {id1} and user group {id2}. slots: method: query.method id1: path.id1 id2: path.id2 - text: Via the GET override, apply {method} to channel {id1} and group {id2}. slots: method: query.method id1: path.id1 id2: path.id2 method: generated generated: '2026-10-01' - target: $.paths['/channels/{id1}/usergroups/{id2}/link.json'].post update: x-apievangelist-phrasing: intent: Grant a user group access to a channel effect: write questions: - How do I give a user group access to a specific channel? - Can I assign an existing group to a channel by their IDs? instructions: - text: Link channel {id1} to user group {id2}. slots: id1: path.id1 id2: path.id2 - text: Give user group {id2} access to channel {id1}. slots: id1: path.id1 id2: path.id2 method: generated generated: '2026-10-01' - target: $.paths['/channels/{id1}/usergroups/{id2}/unlink.json'].post update: x-apievangelist-phrasing: intent: Remove a user group from a channel effect: write questions: - How do I take a user group's access away from a channel? - Can I detach a group from a channel without deleting the group? instructions: - text: Unlink user group {id2} from channel {id1}. slots: id1: path.id1 id2: path.id2 - text: Remove group {id2}'s access to channel {id1}. slots: id1: path.id1 id2: path.id2 method: generated generated: '2026-10-01' - target: $.paths['/channels/{id1}/users/{id2}.json'].get update: x-apievangelist-phrasing: intent: Link or unlink a channel and user via GET effect: write questions: - Is there a GET-based override for linking or unlinking a single user and a channel? - Can I change one user's channel assignment with the method query parameter? instructions: - text: For individual user {id2}, send method {method} on the channel {id1} membership endpoint. slots: method: query.method id1: path.id1 id2: path.id2 - text: Through GET with method {method}, add or remove person {id2} on channel {id1}. slots: method: query.method id1: path.id1 id2: path.id2 method: generated generated: '2026-10-01' - target: $.paths['/channels/{id1}/users/{id2}/link.json'].post update: x-apievangelist-phrasing: intent: Grant a user access to a channel effect: write questions: - How do I add an existing user directly to a channel? - Can I assign one person to a channel without putting them in a group? instructions: - text: Link channel {id1} to user {id2}. slots: id1: path.id1 id2: path.id2 - text: Give user {id2} direct access to channel {id1}. slots: id1: path.id1 id2: path.id2 method: generated generated: '2026-10-01' - target: $.paths['/channels/{id1}/users/{id2}/unlink.json'].post update: x-apievangelist-phrasing: intent: Remove a user from a channel effect: write questions: - How do I remove a single user's direct access to a channel? - Can I unassign someone from a channel while keeping their account? instructions: - text: Unlink user {id2} from channel {id1}. slots: id1: path.id1 id2: path.id2 - text: Take user {id2} off channel {id1}. slots: id1: path.id1 id2: path.id2 method: generated generated: '2026-10-01' - target: $.paths['/channels/{id}.json'].get update: x-apievangelist-phrasing: intent: Get a channel effect: read questions: - How do I fetch the details of one channel by its ID? - What settings does a single channel have, like its view mode or hidden flag? instructions: - text: Get channel {id}. slots: id: path.id - text: Show me the details of channel {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/channels/{id}.json'].put update: x-apievangelist-phrasing: intent: Update a channel (PUT) effect: write questions: - How do I rename a channel or change its description with a PUT request? - Can I update a channel's cover focal point with PUT? instructions: - text: PUT an update renaming channel {id} to {name}. slots: id: path.id name: requestBody.name - text: Using PUT, set the default view mode of channel {id} to {defaultViewMode}. slots: id: path.id defaultViewMode: requestBody.defaultViewMode method: generated generated: '2026-10-01' - target: $.paths['/channels/{id}.json'].post update: x-apievangelist-phrasing: intent: Update a channel (POST) effect: write questions: - Can I update a channel with POST instead of PUT? - Is there a POST variant for hiding a channel or editing its details? instructions: - text: Via POST, set hidden to {isHidden} on channel {id}. slots: id: path.id isHidden: requestBody.isHidden - text: Using the POST update, change channel {id}'s description to {description}. slots: id: path.id description: requestBody.description method: generated generated: '2026-10-01' - target: $.paths['/channels/{id}.json'].delete update: x-apievangelist-phrasing: intent: Delete a channel effect: destructive questions: - How do I permanently delete a channel? - What happens when I remove a channel I no longer need? instructions: - text: Delete channel {id}. slots: id: path.id - text: Remove channel {id} from Showpad. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/channels/{id}/assets.json'].get update: x-apievangelist-phrasing: intent: List assets in a channel effect: read questions: - Which assets are published in a particular channel? - Can I see only the downloadable files inside one channel? instructions: - text: List the assets in channel {id}. slots: id: path.id - text: Show the {filetype} files in channel {id}. slots: id: path.id filetype: query.filetype method: generated generated: '2026-10-01' - target: $.paths['/channels/{id}/channelnodes.json'].get update: x-apievangelist-phrasing: intent: List a channel's nodes effect: read questions: - How do I see the structure of sections and pages inside a channel? - Can I get the child nodes under a specific parent node in a channel? instructions: - text: List the channel nodes of channel {id}. slots: id: path.id - text: Show the nodes under parent node {parentNodeId} in channel {id}. slots: id: path.id parentNodeId: query.parentNodeId - text: Find nodes in channel {id} matching {query}. slots: id: path.id query: query.query method: generated generated: '2026-10-01' - target: $.paths['/channels/{id}/duplicate.json'].post update: x-apievangelist-phrasing: intent: Duplicate a channel effect: write questions: - How do I copy an existing channel to reuse its setup? - Can I add myself to the duplicated channel automatically? instructions: - text: Duplicate channel {id} into {targetResource}. slots: id: path.id targetResource: requestBody.targetResource - text: Copy channel {id} to {targetResource} and add me with {addCurrentUser}. slots: id: path.id targetResource: requestBody.targetResource addCurrentUser: requestBody.addCurrentUser method: generated generated: '2026-10-01' - target: $.paths['/channels/{id}/link.json'].post update: x-apievangelist-phrasing: intent: Link related resources to a channel effect: write questions: - How do I attach related resources to a channel using a Link list? - Can I connect several resources to one channel in a single call? instructions: - text: Link the resources {Link} to channel {id}. slots: id: path.id Link: requestBody.Link - text: Attach {Link} to channel {id} as related resources. slots: id: path.id Link: requestBody.Link method: generated generated: '2026-10-01' - target: $.paths['/channels/{id}/tag-categories.json'].get update: x-apievangelist-phrasing: intent: Get an experience's tag categories effect: read questions: - Which tag categories are assigned to a given experience? - How do I check the tag category setup of a channel? instructions: - text: Get the tag categories for experience {id}. slots: id: path.id - text: Show which tag categories channel {id} uses. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/channels/{id}/tag-categories.json'].post update: x-apievangelist-phrasing: intent: Set an experience's tag categories effect: write questions: - How do I change which tag categories an experience uses? - Can I replace the tag categories on a channel in one request? instructions: - text: Set the tag categories of experience {id} to {tagCategoryIds}. slots: id: path.id tagCategoryIds: requestBody.tagCategoryIds - text: Update channel {id} to use tag categories {tagCategoryIds}. slots: id: path.id tagCategoryIds: requestBody.tagCategoryIds method: generated generated: '2026-10-01' - target: $.paths['/channels/{id}/tags.json'].get update: x-apievangelist-phrasing: intent: List a channel's tags effect: read questions: - Which tags are attached to a specific channel? - What tags does this channel carry? instructions: - text: Get the tags for channel {id}. slots: id: path.id - text: List every tag on channel {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/channels/{id}/unlink.json'].post update: x-apievangelist-phrasing: intent: Unlink related resources from a channel effect: write questions: - How do I detach several related resources from a channel at once? - Can I remove resource links from a channel using a Link list? instructions: - text: Unlink the resources {Link} from channel {id}. slots: id: path.id Link: requestBody.Link - text: Detach {Link} from channel {id}. slots: id: path.id Link: requestBody.Link method: generated generated: '2026-10-01' - target: $.paths['/channels/{id}/usergroups.json'].get update: x-apievangelist-phrasing: intent: List user groups with access to a channel effect: read questions: - Which user groups can see a particular channel? - Can I check if a synced group is assigned to a channel? instructions: - text: List the user groups on channel {id}. slots: id: path.id - text: Find the group named {name} among channel {id}'s user groups. slots: id: path.id name: query.name method: generated generated: '2026-10-01' - target: $.paths['/channels/{id}/usergroups.json'].post update: x-apievangelist-phrasing: intent: Create a user group inside a channel effect: write questions: - How do I create a new group and add it to a channel in one step? - Can I give the new channel group a description and external ID? instructions: - text: Create a group called {name} on channel {id}. slots: id: path.id name: requestBody.name - text: Add a new group {name} with external ID {externalId} to channel {id}. slots: id: path.id name: requestBody.name externalId: requestBody.externalId method: generated generated: '2026-10-01' - target: $.paths['/channels/{id}/users.json'].get update: x-apievangelist-phrasing: intent: List users with access to a channel effect: read questions: - Who has access to a specific channel? - Can I list only the active users of one channel or find someone by email? instructions: - text: List the users of channel {id}. slots: id: path.id - text: Check whether {email} is a user on channel {id}. slots: id: path.id email: query.email method: generated generated: '2026-10-01' - target: $.paths['/channels/{id}/users.json'].post update: x-apievangelist-phrasing: intent: Create a user inside a channel effect: write questions: - How do I create a new user and add them to a channel at the same time? - What details are required to add a new person to a channel? instructions: - text: Create user {userName} ({firstName} {lastName}, {email}) in channel {id} with language {language} and active {isActive}. slots: id: path.id userName: requestBody.userName firstName: requestBody.firstName lastName: requestBody.lastName email: requestBody.email language: requestBody.language isActive: requestBody.isActive - text: Add a new user with email {email} to channel {id}. slots: id: path.id email: requestBody.email method: generated generated: '2026-10-01'