Building plugins in Agent Studio at scale, think of hundreds deployed enterprise-wide, demands thoughtful design. Poor architecture risks silos (isolated components that don’t share), security gaps (leaky data flows), and brittle plugins (ones that break under load or changes). In contrast, solid architecture drives reusability (e.g., a shared HR connector across plugins), streamlines maintenance, and helps the Agentic Reasoning Engine better interpret your high-level specs for reliable, context-aware behaviors. This approach, rooted in the platform’s design philosophy, lets you focus on what your plugin achieves (e.g., seamless PTO checks) rather than low-level details like LLM tuning.
Walk through a simple 6-step flow to architect any plugin. Using a bottom-up approach, starting with purpose and building to launch to your users.
This sequence empowers quick prototyping while ensuring robust, reusable results.
Start here to ground your plugin in real value. Outline the business problem it solves, who it serves, and the desired user experience. This step ensures your design aligns with outcomes, not just tech. Focus on the end-to-end flow: how users (or systems) interact and what success looks like.
For a conversational plugin, map a simple query like: "Do I have enough PTO to take off a week in November?" The assistant fetches the balance and responds: "You have 12 days left. Yes, that's enough for a week off in November."
For a plugin triggered by system events, it activates on an HR Event (e.g., new request submitted). Run in background, then notify for approval.
For fully automated plugins (e.g., nightly PTO accrual sync), no notifications needed, just ensure it runs silently and logs outcomes for audits.
Keep it outcome-focused
Now that you understand the UX and purpose, it’s time to think about the components needed to build the plugin.
Building on the purpose and UX from Step 1.2, classify your plugin as Ambient or Conversational. This decision will guide your component choices and ensure the plugin matches user or system expectations.
Use Ambient plugins for proactive, background processes triggered by system events or schedules. They handle automation without direct user initiation, ideal for efficiency gains behind the scenes.
Use Conversational plugins for reactive, interactive flows triggered by user queries. They support multi-turn dialogues, input collection, and personalized responses.
With the type defined, identify the building blocks for your plugin.
With your plugin’s purpose clear, identify and prototype the building blocks. Focus on actions as the core, along with supporting connectors and inputs. This promotes reusability and aligns with the platform’s component-based design.
Follow this sequence to define and test your components:
GET /pto-balance). Create actions to interact with them:
200 OK response with sample data).GET /pto-balance/{user_id}?type={pto_type}.pto_type for “vacation/sick” pto typePOST /approve-request/{request_id}.request_id).Your components are now solid building blocks. Next assemble them into a cohesive flow.
Orchestrate your actions and inputs into a unified flow. This adds logic, such as sequencing or decisions, to drive the plugin. Choose between Compound Actions (CA) for Ambient agents or Conversational Processes (CP) for Conversational agents, based on Step 1.2.
You can blend CA and CP for advanced scenarios, like triggering a background CA from a CP for asynchronous tasks. For details on integration, see the guide on connecting ambient and conversational agents.
Your flow is now orchestrated. Next, define activation mechanisms.
Define how the plugin activates, bridging the flow to real-world events or queries. Select based on Step 1.2’s type: Conversational for user-driven or System for Ambient.
For CP flows, choose the “conversational” trigger type. Agent Studio auto-generates example utterances (e.g., “Check my PTO balance”) based on your plugin’s name and description. Refine these to cover natural variations.
Tip: Set a clear name/description early.
For CA flows, select “system” trigger. Choose subtype:
Triggers now activate your plugin. Let’s now link your flow to the plugin
Your plugin is nearly ready, now link the flow from Step 1.4 to the trigger from Step 1.5. This final assembly wraps your components into a production-ready plugin. Set launch rules like permissions or scopes to control access of who can trigger the plugin.
Attach your CP as the body. Utterances cue execution.
Attach your CA as the body. For webhooks, map input fields from payloads. Input mappers are optional for scheduled flows.
Note: Security for Ambient Agents
Ambient agents run in the background and are not constrained by launch rules for user permissions.
requestId from payload to compound action for approval updateThis completes the architectural blueprint for your plugin. The modular design promotes reusability, allowing easy adaptation for similar plugin use cases.
All resource names in Agent Studio must adhere to these foundational guidelines to ensure compatibility, searchability, and collaboration across workspaces.
The standard format for most resources follows a Camel_Snake_Case structure: [system optional]_Verb_Noun_[Type]. The system prefix (e.g., “Salesforce”) is optional but recommended for integrations. This format promotes clarity and reusability.
This subsection illustrates the Camel_Snake_Case format across key components, with propagation notes for how names flow (e.g., from Action to Process).
Get_Data_Action hinder searches; fix with specifics (e.g., Salesforce_Get_User_Pto_Action).