Publish and Trigger the Plugin
The plugin is the deployable wrapper around the capability you built. It defines when execution starts, what body runs, and which access dependencies execution requires.
Choose the Plugin Shape
Conversational Plugin
Webhook-Triggered Plugin
Scheduled Plugin
A user utterance starts the plugin.
Configure:
- Title and description.
- Positive and negative triggering examples.
- Triggering instructions when the capability needs contrastive guidance.
- A conversation process.
- Launch configuration and access.
Configure Conversational Retrieval
The Manifest Generator uses plugin metadata to create the model-facing tool description. Write metadata that distinguishes the capability from similar plugins.
Title
Name the business capability:
Avoid implementation names:
Description
Explain what the plugin can do, which records it works with, and important boundaries:
Triggering Examples
Add at least five varied positive examples:
- “Move the dark mode request to Planned.”
- “Update a feature request’s status.”
- “Mark dark mode as delivered.”
- “What status is the SSO reporting request in?”
- “Triage my product feedback request.”
Add negative examples that clarify nearby capabilities:
- “Create a Jira issue.”
- “Show the engineering sprint roadmap.”
- “Approve this purchase request.”
Examples shortlist relevant plugins. The reasoning engine still uses the description and context to choose among them.
Bind the Conversation Process
Select the process that:
- Collects or resolves the feature request.
- Collects and validates the target status.
- Confirms the write when required.
- Calls the compound action.
- Exposes a concise result.
Test the process directly before relying on plugin retrieval.
Configure a System Trigger
For a webhook or schedule, map the trigger body into the action or compound action inputs:
The exact root path depends on the trigger payload schema. Inspect the event in trigger logs and map only documented values.
A webhook or scheduled run has no conversational meta_info.user. Include required identity in the event, resolve it through an action, or run the operation with the connector’s shared application identity.
Use Notify as an Explicit Handoff
An ambient workflow can notify a resolved user and offer a button that starts a conversation.
The notify block does not retroactively add conversational user context to the ambient execution. User context begins in the new conversation after the user acts. Map ambient data through conversation_action.input_args; each key must match a declared slot in the target conversation process. Use resources separately when the model needs optional supporting context. Resources do not populate declared slots.
Configure Launch Access
Check every dependency:
A failure at any layer can prevent execution.
Conversational Access
System-Trigger Access
- Restrict the launch audience to a test group.
- Confirm dependency
Useaccess through the process, actions, and connector. - Confirm the downstream credential’s roles and scopes.
- Use Activity Confirmation Policy for consequential writes.
- Test positive, negative, and ambiguous trigger examples.
For both shapes, verify that logs do not expose secrets or sensitive payloads.
Build Along: Publish the PurpleSuite Plugin
Create a conversational plugin with:
Follow one live feature request through the same three API calls and Agent Studio contracts in every chapter.
https://marketplace.moveworks.comX-Instance-ID.Move <a live feature request name> to Planned.
/api/purple-suite/community/feature_requestsDynamic resolver retrieves live candidates/api/purple-suite/community/feature_requests/{id}Compound action updates the selected record/api/purple-suite/community/feature_requests/{id}Compound action verifies the stored resultUse the description and triggering examples from this chapter, then add at least three nearby negative examples. Publish the plugin and test that:
- A direct request to update a feature request retrieves the plugin and runs the resolver’s list
GET. - A vague reference produces resolver disambiguation.
- A Jira or roadmap request does not retrieve it.
- Rejecting confirmation performs no PATCH request.
- Accepting confirmation runs one PATCH followed by one verification GET.
- The assistant returns only the verified request name and new status.
Your checkpoint is a published, access-limited conversational plugin that retrieves for the intended language and rejects nearby capabilities.
Trigger Design Checklist
- One plugin uses one trigger paradigm.
- The title names the capability, not the implementation.
- The description states supported outcomes and boundaries.
- Positive examples cover varied user language.
- Negative examples separate nearby capabilities.
- A conversational plugin binds one tested process.
- A system trigger maps its payload into explicit inputs.
- A scheduled trigger is published and Active.
- Ambient execution does not assume a user profile.
- Notify crosses into conversation through an explicit user handoff.
- Access includes every dependency; only conversational plugins use a launch audience.
Deep Dives
- Natural Language Triggers
- Manifest Generator
- Webhook Triggers
- Scheduled Triggers
- Connect Ambient Agents to Conversational Agents
- Launch Configuration
Next, compare your assets with the PurpleSuite build reference.