IBM Watsonx · Documentation
Provisioning and Configuration Guide for IBM Cloud
This guide explains how to prepare your configuration, find the agent in the IBM Cloud catalog, provision it, and confirm that it has been deployed successfully into your own IBM watsonx Orchestrate instance. It also documents every parameter of the onboarding configuration file and explains what to place in your Cloud Object Storage bucket.
Read it end to end before you begin. Two steps — preparing your configuration file (Section 5) and your policy documents (Section 6) — must be completed before you submit the provisioning form, and they are the steps that most often cause a provisioning attempt to fail.
This guide is written for the administrator who will provision the agent in your organisation's IBM Cloud account. It assumes you can sign in to IBM Cloud and create resources, but it does not assume any prior experience with IBM watsonx Orchestrate.
Field names, file names, and configuration keys appear in a fixed-width amber typeface — for example client_cos_bucket.
The 3K Global Customer Service and Support Agent is an autonomous, multi-agent customer support solution built for IBM watsonx Orchestrate. It connects to your existing operational data — your order, case, and customer records — and can answer customer enquiries, verify customer identity, retrieve information, resolve issues, and escalate to a human colleague when required.
Provisioning creates seven agents, not one, together with the tools they use. All seven are named using the client_id from your configuration file.
| Agent | Role |
|---|---|
| Supervisor | The single entry point. This is the agent your users and testers should chat with. It interprets the request, applies the identity and scope guardrails, and routes work to the specialists below. |
| Context | Gathers customer context — profile, open cases, interaction history, and recent orders. |
| Knowledge | Searches your knowledge base — including your own policy documents — to answer questions about orders, shipments, and billing. |
| Resolution | Actively resolves issues — updates case status, applies knowledge-base solutions, and closes cases. |
| Escalation | Escalates unresolved cases to an available human agent, selecting the least-busy colleague in the right department. |
| Feedback | Collects customer satisfaction feedback after a case is resolved. |
| Learning | Improves the knowledge base over time from resolved case patterns. |
Four things work together during provisioning. Understanding what each one is for makes the rest of this guide straightforward, and explains why you are asked to create a storage bucket before you provision anything.
| Component | Purpose |
|---|---|
| This guide | The procedure you follow. It is the only document you need in order to provision the agent yourself. |
| Your Cloud Object Storage bucket | The handover point between you and 3K. The IBM provisioning form offers only a handful of short text fields — it cannot carry a full configuration file or your policy documents. Instead you place those in storage that you own, and give the form a pointer to them. |
| The onboarding configuration file (YAML) | A machine-readable file that tells the provisioner which watsonx Orchestrate instance to deploy into, which databases to read from and write to, where to escalate unresolved cases, how to send verification email, and which watsonx.ai project to use. Fully documented in Section 5. |
| Your policy documents | Optional. Your organisation's generic, customer-facing policies — returns, shipping, cancellation, and so on. They are indexed into the agent's knowledge base so it can answer policy questions in your own words. Fully documented in Section 6. |
| Party | Responsibility |
|---|---|
| You | Provide and control the IBM Cloud account, the watsonx Orchestrate instance, the PostgreSQL server, the source data, the watsonx.ai project, the storage bucket, the configuration file, and the policy documents. You own every credential and can revoke any of them at any time. |
| 3K Technologies | Reads your configuration once at provisioning time, then builds the canonical database, the knowledge base, and the agents inside your own environment. 3K hosts no copy of your data. |
| IBM Cloud | Hosts the catalog listing, presents the provisioning form, meters billing against your chosen plan, and reports instance status. |
Please confirm all of the following before you begin. A missing prerequisite is the most common cause of a failed provisioning attempt.
| # | Requirement | Notes |
|---|---|---|
| 1 | An active IBM Cloud account | You must be able to create resources in the account and in the target resource group. |
| 2 | An IBM watsonx Orchestrate instance | The agents are deployed into your own instance. Its service URL and an API key are required in your configuration file. |
| 3 | A PostgreSQL 14+ server | Holds the canonical database that the agents query. IBM Cloud Databases for PostgreSQL is recommended. The user you supply must be able to create databases on this server. |
| 4 | Reachable source data | Your operational records, exposed through Trino — for example IBM watsonx.data. See Section 15 for the currently supported set. |
| 5 | A watsonx.ai project | Used for AI-assisted schema mapping and for embeddings. This AI usage is billed to your own IBM account. |
| 6 | A SendGrid account with a verified sender | Used to email six-digit verification codes to your customers. Required — customer-specific questions are not answered without identity verification. |
| 7 | A monitored escalation mailbox | Where unresolved cases are routed. Required. |
| 8 | An IBM Cloud Object Storage bucket | In your own account, holding your configuration file and any policy documents. See Section 9. |
| 9 | Your completed onboarding configuration file | 3K representative provides the template. See Section 5 for a full parameter reference. |
| 10 | Optional — policy documents | Your generic customer-facing policies. See Section 6. |
If you have not yet received your configuration file template, please contact us using the details in Section 16.
The onboarding configuration file is a YAML text file that you complete and upload to your storage bucket. It is the single source of connection and identity information for your deployment: it tells the provisioner where to deploy, what to read, what to write, and whom to notify.
3K provides a template with every value marked as a placeholder. Save it with a .yml or .yaml extension, encoded as UTF-8. The file name is yours to choose — you will enter it in the client_cos_key field during provisioning.
| Key | Required | Description |
|---|---|---|
client_id | Required | Short unique identifier for your deployment. Lowercase; must start with a letter and contain only letters, digits, and underscores; 2 to 50 characters. This value prefixes every agent and tool name in watsonx Orchestrate and isolates your canonical database, so it must be unique to you. |
client_name | Optional | Human-readable display name, e.g. ABCD Logistics Inc. Defaults to client_id if omitted. This is a label only and has no functional effect. |
client_name key in this file is your organisation's display name. The field also labelled client_name on the IBM provisioning form is something entirely different — it is the storage folder prefix holding your policy documents. The two are unrelated. See Section 11.| Key | Required | Description |
|---|---|---|
service_url | Required | The API URL of your instance, including the instance identifier. Must begin with https://. |
api_key | Required | An IBM Cloud API key with access to that instance. Create one under Manage → Access (IAM) → API keys. |
env_name | Optional | Label for the deployment environment. Defaults to cs-agent-<client_id>. |
| Key | Required | Description |
|---|---|---|
host | Required | Hostname of your PostgreSQL server. |
port | Required | Port number. Must be an integer. |
user | Required | Database user. This user must be permitted to create databases on the server — provisioning fails with a clear message if it is not. |
password | Required | Password for that user. |
name | Optional | Recorded for reference only. Each provisioning run creates a new, uniquely named database on this server rather than using this value, so that no two runs and no two clients can ever share one canonical database. Defaults to ibmclouddb. |
| Key | Required | Description |
|---|---|---|
host | Required | Trino hostname. |
port | Required | Trino port. Must be an integer. |
schema | Required | The schema containing your tables, e.g. logistics. |
user | Required | Trino user, e.g. ibmlhapikey_you@example.com. |
password | Required | Trino password or API key. |
catalog | Optional | Trino catalog, e.g. iceberg_data. Supply it unless your deployment genuinely has no catalog. |
type | Optional | Source engine. Defaults to trino, which is the only value currently supported. |
name | Optional | Informational label for the source. |
| Key | Required | Description |
|---|---|---|
email | Required | A monitored mailbox. When the agents cannot resolve a case, or no support staff are available, the case details and the customer's contact address are sent here. Validated as a well-formed email address; provisioning is rejected if it is missing or malformed. |
Before answering any question about a specific customer, the supervisor agent emails a six-digit code to that customer's own address and waits for it to be entered. Delivery uses the SendGrid HTTP API, so a SendGrid account with a verified sender identity is required.
| Key | Required | Description |
|---|---|---|
api_key | Required | From SendGrid Settings → API Keys. |
from_email | Required | The address your customers see as the sender. Must be a sender identity already verified in SendGrid, otherwise delivery silently fails. |
from_name | Optional | Sender display name, e.g. ABCD Support. Defaults to DO NOT REPLY. |
| Key | Required | Description |
|---|---|---|
api_key | Required | API key for your watsonx.ai project. |
project_id | Required | Identifier of your watsonx.ai project. |
url | Optional | Regional endpoint. Defaults to https://us-south.ml.cloud.ibm.com — set it to match your project's region. |
llm_model | Optional | Defaults to meta-llama/llama-3-3-70b-instruct. |
embedding_model | Optional | Defaults to ibm/slate-125m-english-rtrvr. |
The example below shows every section a typical deployment needs, using a logistics organisation as the subject. Replace each placeholder with your own value. Do not copy this example verbatim — the identifiers are illustrative.
client: client_id: abcdlogistics # unique, lowercase, drives all naming client_name: ABCD Logistics Inc. wxo: service_url: https://api.us-south.watson-orchestrate.cloud.ibm.com/instances/<INSTANCE_ID> api_key: <WXO_API_KEY> canonical_db: # your PostgreSQL — agents query this host: <POSTGRES_HOST> port: 30856 user: <POSTGRES_USER> # must be able to create databases password: <POSTGRES_PASSWORD> source_db: # your operational data, via Trino type: trino host: <TRINO_HOST> port: 443 catalog: iceberg_data schema: logistics user: ibmlhapikey_you@acme.com password: <TRINO_API_KEY> escalation: # monitored mailbox for unresolved cases email: support@abcd.com sendgrid: # delivery of customer verification codes api_key: <SENDGRID_API_KEY> from_email: no-reply@abcd.com # must be a verified SendGrid sender from_name: ABCD Support watsonx_ai: # AI used for schema mapping and embeddings url: https://us-south.ml.cloud.ibm.com api_key: <WATSONX_API_KEY> project_id: <WATSONX_PROJECT_ID>
This file contains live credentials for your watsonx Orchestrate instance, both databases, your watsonx.ai project, and your SendGrid account. Please treat it as you would any other secret.
deploy_code entry, which appears in some older templates — is silently ignored and has no effect on your deployment. If you are working from an older template, you may safely delete such entries.Policy documents are optional, but they are what allow the agent to answer general questions in your own organisation's words rather than in generic terms.
A policy document sets out a rule that applies to your customers generally — the kind of policy you would publish on your website or hand to any customer who asked. They are not specific to any one person or order. Typical examples include:
Do not place customer-specific records in your policy documents — no order histories, addresses, contact details, or case notes. That information reaches the agent from your source database, under the identity verification rules described in Section 13. Policy documents are indexed into a knowledge base that any verified customer's question may draw upon, so personal data does not belong there.
| Format | Maximum size per file |
|---|---|
.pdf, .docx, .pptx | 25 MB |
.txt, .csv, .html | 5 MB |
.xlsx | 1 MB |
Files in any other format are ignored, without failing provisioning. A knowledge base holds a maximum of 100 files, counting both your policy documents and the knowledge articles generated during onboarding. Keep each policy in its own clearly named file — one topic per file retrieves far better than a single combined handbook.
Upload them to a folder inside the same bucket as your configuration file — e.g. policy-docs/ — and enter that folder name in the client_name field on the provisioning form (Section 11).
.yml and .yaml files are always excluded.During provisioning, your documents are downloaded from your bucket and indexed into a knowledge base inside your watsonx Orchestrate instance. At run time, the knowledge agent searches that knowledge base to answer general questions — and because a general question needs no identity check, a customer can ask about your returns policy without verifying who they are. If you provide no policy documents, the agent still functions, but it will have no source for policy questions.
Figure 1 — The IBM Cloud sign-in page.
Figure 2 — The Catalog link in the IBM Cloud top navigation bar.
Figure 3 — Filtering the catalog by Works with, then watsonx Orchestrate.
Figure 4 — The 3K Global Customer Service and Support Agent tile in the filtered catalog results.
Figure 5 — The product page, showing the Create and About tabs and the available pricing plans.
Your bucket is the handover point described in Section 3. It holds your configuration file and, optionally, your policy documents. You own it and control access to it; 3K only reads from it.
Figure 6 — Cloud Object Storage instances listed under Storage in the IBM Cloud resource list.
policy-docs/ (Section 6).Figure 7 — Objects in a Cloud Object Storage bucket. Your own bucket name and contents will differ.
You will need all four when you complete the provisioning form in Section 11.
| Value | Where to find it |
|---|---|
| Bucket endpoint | The bucket's Configuration page. Use the public S3-compatible endpoint. |
| API key | Manage → Access (IAM) → API keys → Create. |
| Storage instance CRN | The storage instance overview page. |
| Bucket name | The name you chose when creating the bucket. |
client_cos_key field expects the full object key, including any folder path. A file stored at config/abcd.yml must be entered as config/abcd.yml, not as abcd.yml.On the agent's product page, open the Create tab and choose a pricing plan. Three plans are offered.
| Plan | Included | Pricing | Self-service |
|---|---|---|---|
| Starter | Monthly subscription including up to 2,000 resolutions. | USD 1,500.00/month · USD 0.75 per resolution overage | Yes |
| Growth | Higher-volume monthly subscription. | USD 5,000.00/month · USD 0.50 per resolution overage | Yes |
| Custom | For enterprises requiring full omnichannel coverage, high volume, or custom service levels. | USD 1.00 per 3KT unit · billable units agreed with 3K | No — contact 3K |
Figure 8 — The Select a pricing plan panel, showing the Custom, Growth, and Starter plans.
Prices shown are for the country or location set on your account, and were correct at the time of writing. The plan panel in the console is always authoritative. You may also select Add to estimate to model costs before committing.
With a plan selected, scroll to Configure your resource and complete the fields below. Every value except the service name and resource group is a pointer to the bucket you prepared in Section 9.
Figure 9 — The Configure your resource section of the provisioning form.
| Field | What to enter |
|---|---|
| Service name | A name of your choice that lets you identify this instance later. A default name is pre-populated. |
| Resource group | Typically Default, unless your organisation uses a different resource group. |
client_cos_key | The full object key of your configuration file within your bucket — e.g. acme-config.yml. |
client_cos_endpoint | Your bucket endpoint, as recorded in Section 9. |
client_cos_api_key | The API key for your storage instance, as recorded in Section 9. |
client_cos_instance_crn | Your storage instance CRN, as recorded in Section 9. |
client_cos_bucket | Your bucket name, as recorded in Section 9. |
client_name | Optional. The folder prefix holding your policy documents — e.g. policy-docs/. Leave blank only if you uploaded no policy documents; see the warning below. |
Figure 10 — The five client_cos fields and the optional client_name field, shown in detail.
client_name key in your configuration file. If you leave it blank, the entire bucket root is scanned for policy documents; see Section 6.Figure 11 — Accepting the third-party terms enables the Create button.
Figure 12 — The provisioned instance shown with Active status in the IBM Cloud resource list.
| Status | What it means | What to do |
|---|---|---|
| Provision in progress | Your agent is being provisioned: creating your canonical database, mapping and loading your data, building your knowledge base, and deploying the seven agents to your watsonx Orchestrate instance. | No action required. Provisioning typically takes 15 to 40 minutes. |
| Active | Provisioning is complete and your agent is ready for use. | Continue to Section 13 to locate and test your agent. |
| Failed | Provisioning did not complete. This is usually caused by an incorrect value in the provisioning form, or by a problem with the files in your storage bucket. | Select the instance to read the error message, then see Section 14. |
Figure 13 — The instance details panel, showing creation date, CRN, resource group, and location.
Once the status shows Active, verify the deployment as follows.
client_id from your configuration file — e.g. <client_id>_supervisor_agent. Each should show a Live badge.Figure 14 — The deployed agents in watsonx Orchestrate, each showing a Live badge. The prefix shown comes from that deployment's own client_id.
Figure 15 — A verification exchange with the supervisor agent. The customer email address has been redacted.
| Symptom | Cause and resolution |
|---|---|
| A "missing required parameter" error appears when you select Create | One of the client_cos fields in Section 11 is empty or contains a typing error. The message names the fields that are missing. Verify each value against those recorded in Section 9, taking care that no leading or trailing spaces were introduced when pasting. |
| Provisioning fails, reporting that the configuration file could not be read | The client_cos_key value does not match an object in the bucket. Confirm the exact object key, including any folder path and the file extension, and confirm that the API key you supplied can read that bucket. |
| Provisioning fails, reporting missing or invalid configuration values | Your configuration file was read but did not validate. The message lists every problem at once. Check each against Section 5 — the most common causes are an omitted required value and a client_id that breaks the naming rules. |
| Provisioning fails on the canonical database | The database user you supplied cannot create databases on that server. Grant that permission, or supply a user that has it, and provision again. |
| Status remains "Provision in progress" for more than one hour | Contact support and quote your instance CRN, shown in the instance details panel. |
| Status shows "Failed" | Select the instance to read the error message. Contact support and quote the exact message together with your instance CRN. |
| Your agents do not appear in watsonx Orchestrate | Confirm you are viewing the same watsonx Orchestrate instance named in the wxo.service_url of your configuration file — this is the single most common cause. If the agents are still not visible, contact support. |
| Only some of the seven agents appear | Allow provisioning to finish completely; the agents are deployed in sequence. If the instance is Active and agents are still missing, contact support with your instance CRN. |
| The agent cannot answer policy questions | Either no policy documents were uploaded, or the folder prefix entered on the form did not match the folder used, or the files are in an unsupported format. See Section 6. |
| The verification code does not arrive | Confirm that sendgrid.from_email is a sender identity verified in SendGrid — delivery fails quietly if it is not. Then check the recipient's spam folder, and confirm the address exists in your customer records. The agent can also raise the issue with a human colleague without requiring verification first. |
| The agent asks for identity verification on a general question | Report this to support with the exact wording you used. Verification is expected only for customer-specific requests. |
The current release operates within the technical boundaries below. These reflect the present configuration and are expected to expand in future releases.
| Area | Current support |
|---|---|
| Source data connectivity | Source data is read through Trino only. Support for additional source database engines can be added on request to suit your data environment. |
| Canonical database | The canonical database, which holds the validated and transformed data the agents query at run time, is supported on PostgreSQL 14 or later only. |
| Language model | A single large language model is used for natural language understanding and response generation: meta-llama/llama-3-3-70b-instruct. |
| Verification code delivery | Customer verification codes are delivered through SendGrid only. A SendGrid account with a verified sender identity is required. Sometimes, OTPs are found in Junk/Spam mail. |
| Knowledge base size | A maximum of 100 files, counting your policy documents and the articles generated during onboarding. Per-file size limits apply by format — see Section 6. |
| Language | The agent is supported in English. |
| Plan provisioning | The Starter and Growth plans are available for self-service provisioning. The Custom plan requires a scope discussion with 3K first — see Section 10. |
If any of these boundaries do not fit your environment, please raise it with us — see Section 16.
| Purpose | Contact |
|---|---|
| Support | 3kglobal.ai/ibm-watsonx/support |
| Documentation | 3kglobal.ai/ibm-watsonx/documentation |
| Configuration file assistance, and Custom plan enquiries | 3k-wx-support@3kglobal.ai |