Skip to navigation
Plugin Building MasterclassEnd-to-End Course

Publish and Trigger the Plugin

Package the capability, configure retrieval metadata and launch access, and add a conversational or system trigger.
View as Markdown

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

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:

Manage Product Feature Requests

Avoid implementation names:

Purple Community PATCH Wrapper

Description

Explain what the plugin can do, which records it works with, and important boundaries:

Find a product feature request and update its current status.
Use this plugin when a user wants to view, triage, or move a feature request
to another supported status. Do not use it to create roadmap commitments.

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:

  1. Collects or resolves the feature request.
  2. Collects and validates the target status.
  3. Confirms the write when required.
  4. Calls the compound action.
  5. 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:

feature_request_id: data.event.feature_request_id
new_status: data.event.target_status

The exact root path depends on the trigger payload schema. Inspect the event in trigger logs and map only documented values.

No Automatic User Profile

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.

Webhook or schedule
↓
Resolve recipient
↓
Compound action notify block
↓
User receives notification
↓
User selects the action
↓
New conversation process starts with mapped inputs

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:

Execution can start
↓
Plugin can use its configured body
↓
Conversational: process → action
System: HTTP or compound action
↓
Nested actions can use connectors
↓
Connector credentials can perform downstream operations

A failure at any layer can prevent execution.

  • Restrict the launch audience to a test group.
  • Confirm dependency Use access 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:

PurpleSuite end-to-end call trace

Follow one live feature request through the same three API calls and Agent Studio contracts in every chapter.

Shared connector
https://marketplace.moveworks.com
Every API action
Connector adds Bearer PAT. Action adds X-Instance-ID.
Retrieve, confirm, and present the capability
The plugin owns when the flow starts. Confirmation gates the write, and the reasoning engine presents only mapped output.
User requestConversationConversational plugin
Move <a live feature request name> to Planned.
Receives
Natural-language intent
Returns
Selected plugin and conversation process
How it fits
The title, description, and triggering examples retrieve the capability. They do not contain an API record ID.
Successful run: actual API call ledger
1GET/api/purple-suite/community/feature_requestsDynamic resolver retrieves live candidates
2PATCH/api/purple-suite/community/feature_requests/{id}Compound action updates the selected record
3GET/api/purple-suite/community/feature_requests/{id}Compound action verifies the stored result
Use a record returned by your own PurpleSuite instance. Save its original status before the write and restore it after mutation testing when appropriate.
FieldValue
TitleManage Product Feature Requests
BodyThe PurpleSuite feature-request conversation process
Initial audienceA small development test group
ConfirmationRequired before the status update

Use the description and triggering examples from this chapter, then add at least three nearby negative examples. Publish the plugin and test that:

  1. A direct request to update a feature request retrieves the plugin and runs the resolver’s list GET.
  2. A vague reference produces resolver disambiguation.
  3. A Jira or roadmap request does not retrieve it.
  4. Rejecting confirmation performs no PATCH request.
  5. Accepting confirmation runs one PATCH followed by one verification GET.
  6. 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

Next, compare your assets with the PurpleSuite build reference.