🚀 Series Overview: Custom Agentic Chatbot with SAP AI Core and Joule Studio
- Part 1 — Building the Custom AI Agent Backend
- Part 2 (1) — Deploying the Agent on AI Core (Environment & Containerization)
- Part 2 (2) — Deploying the Agent on AI Core (Deployment & Testing)
- Part 3 (1) — Setting Up Joule Studio Connection (Destination & Environment)
- Part 3 (2) — Creating a Joule Skill (Design & Release)
- Part 3 (3) — Testing and Sharing on Work Zone
Part 3 (3) — Testing and Sharing the skill on Work Zone
In the previous part, we designed a CustomAgent Skill that links your AI Core backend actions and defines how Joule interprets user inputs. Now, it’s time to test it live, right inside Joule Chat Interface, and finally share it with your organization’s via Work Zone, so that others can access your agent.
By the end of this section, you will:
- Test your Skill in Joule Chat Interface
- share the Skill to Work Zone for organization-wide access
1. Test the Skill in Joule Chat interface
Once your Skill is released and deployed to the environment, it becomes available inside the Joule Chat interface.
Step 1. Launch Joule Chat Interface
Go to Control Tower → select correct Environment → More → Joule → Launch
This opens the Joule Chat interface for that specific environment.
Step 2. Start Conversation
You can start chatting naturally by sending any message, Joule will automatically detect the appropriate Skill based on your setup.
In this example, we’ll start the conversation using an activation phrase (e.g., /CustomAgent) to trigger the Skill explicitly based on how we set from skill description in this post. This approach helps ensure the correct Skill is activated during testing.
Example. Triggering the Skill and maintaining a continuous agentic flow
The example below illustrate how the CustomAgent Skill is triggered and how the agentic workflow executes step by step. Here, the backend queries SAP HANA Cloud to retrieve real-time stock data before generating a natural-language summary response.
Joule detects the message and routes it to the CustomAgent Skill (triggered by /CustomAgent). This skill is linked to your backend endpoint deployed on SAP AI Core, which handles the reasoning and multi-step action execution.
🔍 How the Agentic Flow Executes
- Planner Stage (/v2/plan) : The backend receives the request and generates a plan. Example from the chat,
- Generate SQL query to check current stock level for ‘Wireless Mouse’ product.
- Execute the generated SQL query to get current stock level.
- Provide a clear response about the available stock quantity.
- Action Graph Creation (/v2/action-graph) : The agent converts the plan into series of executable steps in LangGraph.
- Execution Stage (/v2/start-execution) : The actions are executed in order (querying stock, formatting a reply, etc.).
- Response Delivery (/v2/continue-execution) : The final message is sent back to Joule, which displays the result in the chat.
Each stage is visible in the conversation window as we designed Joule Skill in the previous post, allowing user to trace the full reasoning process step by step.
♾ Maintaining a Continuous Conversation
To maintain continuity between messages, the system uses a unique converation_id that is shared between Joule and your backend.
When a message is sent to the Joule, Joule parses the conversation_id from the user input.
On the backend side (AI Core), it either:
- uses an existing conversation_id provide by the user and parsed by Joule — to continue an ongoing conversation
- generates a new one if nothing is provided — to start a new conversation
This design ensures that every conversation session can be explicitly tracked and resumed.
The example below show how the agent continues the same conversation seamlessly using the shared conversation_id.
Because Joule parsed and passed the same converstaion_id (session-b31e574a) from the previous turn, the backend recognized that the new message belonged to the same session. As a result, the agent was able to reference the previous HANA query result and compose a follow-up order email template — without the user needing to restate any context.
💬 Extending the Flow to External Tools
In the next step, the same converstaion_id (session-b31e574a) was used again — this time to send the previously composed order email through Gmail integration.
The following example shows how the same agentic flow extends beyond Joule to interact with an external tool like Gmail.
Here, the backend reused the prior plan and template — demonstrating how multi-step reasoning, enterprise data retrieval, and third-party API execution can all occur within a single continuous conversation inside Joule.
2. Share the Skill to Work Zone
Once your Skill is tested and working as expected, you can share it to Work Zone so that other users in your organization can access it. This is done by sharing the Joule capabilities from your Control Tower > Environments.
- Go to Control Tower → Environments → Select your Environment
- Navigate to the Joule tab at the top
- Click the gear icon (⚙️) next to your Joule environment
Now you can share your Skill with specific users or user groups in your organization.
This process is well explained in the following SAP Community post: Getting Started with Joule Studio in SAP Build – Part 4: Managing Access to Custom Joule Skills
Wrapping Up the Series
With this final part, you’ve completed the Custom Agentic Chatbot with SAP AI Core and Joule Studio series.
You now have:
- A Flask-based agentic backend running on SAP AI Core
- A Skill in Joule Studio that connects to it through Actions
- A live conversational interface integrated into SAP Work Zone
Through this setup, you’ve built an enterprise-ready agentic chatbot — capable of reasoning over enterprise data, executing dynamic multi-step actions, and integrating securely with external tools inside your organization.
This concludes the series on building an end-to-end Custom Agentic Chatbot. We hope this walkthrough helps you design, deploy, and scale your own AI agent workflows with confidence using SAP AI Core and Joule Studio. 🚀
Read More Technology Blog Posts by SAP articles
#abap