PurpleSuite Build Reference
Review the complete PurpleSuite feature-request build and finish any missing Agent Studio assets.
PurpleSuite provides mock enterprise SaaS APIs and seeded data for Agent Studio development. This reference assembles the feature-request capability you built throughout the masterclass.
If you followed each Build Along section, the connector, actions, mappings, slots, compound action, conversation process, and plugin already exist. Compare those assets with the reference below and complete only the missing or failing checkpoints.
The completed build contains:
The explorer below fetches only public PurpleSuite catalog and OpenAPI metadata. It does not request, store, or transmit your PAT or instance ID, and it does not execute API operations.
Explore the Live API Contract
Select Community, then inspect the instance-based GET /feature_requests, GET /feature_requests/{id}, and PATCH /feature_requests/{id} operations.
Choose a mock enterprise system and operation. The explorer reads public OpenAPI metadata and generates an Agent Studio action outline without requesting or storing credentials.
The catalog and operation schemas come from the current PurpleSuite codebase, so new systems and fields can appear without rewriting this page.
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 resultPhase 0: Create a PurpleSuite Instance
Complete PurpleSuite Setup to:
- Create an instance with sample data.
- Copy the temporary PAT and instance ID.
- Create an API-key connector.
- Verify the connection with a read-only request.
You can use either connector boundary:
Reusable Across PurpleSuite
Limited to the Community API
Connector base URL:
HTTP action endpoint:
The narrower base URL reduces the destinations compatible actions can reach. The broader connector is convenient when one build intentionally uses several PurpleSuite systems.
Phase 1: Build the Read Actions
Create an HTTP action named List PurpleSuite feature requests.
PurpleSuite list operations return a structured envelope:
Keep the list envelope in the HTTP action’s response schema. The dynamic resolver will transform response.data into candidate values in the next phase.
Create another HTTP action named Get PurpleSuite feature request:
Checkpoint
The list action returns the documented { data, nextCursor, total } envelope. The get action returns one requested record.
Phase 2: Build the Resolvers
Dynamic Feature Request Resolver
Create an object slot named selected_feature_request.
Configure a dynamic resolver that:
-
Calls
List PurpleSuite feature requests. -
Maps the resolver output directly to a candidate list:
-
Configures cardinality to interpret the output as a list of candidate values.
-
Uses
display_nameas the useful display field. -
Preserves
id,current_status, andproduct_area.
The user can refer to a request naturally while the selected slot retains the exact record ID.
Static Status Resolver
Create an object slot named target_status.
Use a static resolver based on the current currentStatus enum shown in the live OpenAPI schema. Do not copy an older list from another quickstart without checking the spec.
Add a DSL validator when your business flow allows only a subset of transitions.
Checkpoint
Test:
- One exact request name.
- An ambiguous phrase that matches several requests.
- A phrase with no matching request.
- Each allowed target status.
- A status excluded by your business rule.
Phase 3: Build the Write Action
Create an HTTP action named Update PurpleSuite feature request.
Configure the request from the live PATCH /feature_requests/{id} schema.
Endpoint:
Example body shape:
Keep the exact property name and enum values defined by the current OpenAPI schema.
Checkpoint
Test the action against non-production sample data. Confirm that the selected record changes and the action returns a useful updated object.
Phase 4: Compose the Backend Workflow
Create a compound action named Update and verify feature request.
Declare:
Add steps:
Example return:
Checkpoint
The compound action exposes one result. The internal write and verification responses do not leak into the caller’s contract.
Phase 5: Build the Conversation Process
Add:
selected_feature_requestobject slot with the dynamic resolver.target_statusobject slot with the static resolver and validation.- Confirmation before the write.
- An action activity that calls the compound action.
Input mapping:
Output mapping:
Checkpoint
The process collects both values, confirms once, performs the backend sequence, and returns one concise result.
Phase 6: Publish the Conversational Plugin
Use:
Add at least five varied positive triggering examples and negative examples for nearby project-management or ticketing capabilities.
Launch to a test group and try:
Optional Phase 7: Reuse the Backend as an Ambient Agent
Create a separate plugin with a webhook or scheduled trigger. Map an event body containing feature_request_id and new_status directly into the same compound action.
This variant demonstrates reuse:
- Same connector.
- Same HTTP actions.
- Same compound action.
- Different trigger and no conversational slots.
- No automatic
meta_info.user.
Add notify only when the result must reach a resolved user.
Lab Review
You have built one capability from modular contracts:
Continue to Test and Operate.