# Get Started

### What is Workfx AI

Workfx AI is an Growth AI Agent built for the AI search era.

It helps your brand:

* get discovered across AI systems (ChatGPT, Google AI, Gemini, etc.)
* be understood and trusted by AI
* get cited in answers
* turn visibility into real traffic and conversions

Instead of treating SEO, content, and distribution as separate workflows, Workfx AI connects them into one unified system.

***

### What you can do with Workfx AI

With Workfx AI, you can:

* understand how visible your brand is in AI search
* identify gaps in content, authority, and structure
* create content based on real user queries
* build trust across communities and platforms
* fix technical and on-site issues
* optimize pages, products, and assets
* track performance and continuously improve

***

### How Workfx AI works

Workfx AI is built around a simple, continuous workflow:

**Analyze → Execute → Improve**

***

#### Step 1 — Check Your Visibility

Start by understanding your current performance.

You will:

* run a visibility scan
* see how your brand appears across AI systems
* identify gaps and opportunities

👉 Know what’s holding you back

***

#### Step 2 — Create & Optimize

Turn insights into action.

You will:

* generate content based on real queries
* optimize pages, products, and assets
* build authority and trust signals

👉 Start gaining visibility and conversions

***

#### Step 3 — Track & Improve

Measure what works and refine your strategy.

You will:

* track traffic and AI visibility
* monitor query-level performance
* connect visibility to real outcomes

👉 Continuously improve and scale

***

### Core modules

Workfx AI includes the following core modules:

* **Quick Check** → analyze your current AI visibility
* **Content Optimization** → create and improve content
* **Reddit Management** → build trust and community signals
* **Technical Audit** → fix technical and structural issues
* **Product Listing Optimization** → optimize pages and conversion
* **Performance** → track traffic, visibility, and results
* **Ask Lumi** → get guidance and answers داخل the platform

***

### Where to start

If you're new, we recommend starting here:

👉 Run a **Quick Check** to get your AI visibility score and report

***

### What you’ll get

Within minutes, you will have:

* a clear view of your AI visibility
* a list of gaps and opportunities
* a structured action plan
* tools to start execution immediately


# Account & Basic Setup

Set up your account, connect your website, and configure your workspace to enable accurate analysis, team collaboration, and ongoing optimization.

### What this does

This workflow guides you through account setup and initial onboarding.

By completing this process, the platform will:

* Understand your website, brand, and competitors
* Tailor keyword and query recommendations based on your region and business profile
* Run an initial AI visibility analysis
* Enable tracking, collaboration, and multi-project management

This ensures all insights and recommendations are aligned with your business context.

***

### How to use

#### Step 1: Sign in

* Enter your email address
* Complete the login process

***

#### Step 2: Enter your website information

Provide the following details:

* Website URL
* Brand name
* Competitors (optional but recommended)

This helps the system understand your business and perform more accurate benchmarking.

***

#### Step 3: Set your business profile

Select:

* Company size
* Primary business region

This allows the system to:

* Recommend more relevant keywords and queries
* Adjust analysis based on regional search behavior

***

#### Step 4: Enter the Agent page

After completing setup, you will be directed to the Agent page.

***

#### Step 5: Run initial analysis

The Agent will automatically:

* Scan your website
* Perform a quick assessment
* Generate your initial AI visibility score

***

#### Step 6: Follow the guided walkthrough

During the analysis, an onboarding guide will walk you through the platform.

You will learn:

* What each feature does
* How to use each module
* How to navigate the product

***

### Account & Workspace Management

#### Manage your team

You can manage team members from the bottom-left corner.

You can:

* Invite team members
* Share access to your workspace

The number of members depends on your subscription plan.

Once added, team members can access your workspace and use **Switch Project** to enter your paid environment.

***

#### Switch between projects

If you have multiple projects or workspaces:

* Click **Switch Project** in the bottom-left corner
* Select the project you want to access

This allows you to manage shared workspaces efficiently.

***

#### Track credit usage

You can view your credit usage in the bottom-left corner.

You will see:

* Remaining credits
* Credits consumed

This helps you monitor and manage feature usage.

***

#### Add and manage multiple websites

Each account can manage multiple websites for continuous tracking and optimization.

To add a new website:

* Click the project selector in the top-left corner
* Click **Add new project**
* Enter the website and brand information

***

#### Switch between websites

To switch between websites:

* Click the project selector in the top-left corner
* Select the project you want to view

***

### Result

After completing setup, you will:

* Have your account fully configured
* Receive an initial AI visibility assessment
* Be able to manage multiple websites and projects
* Collaborate with team members
* Track usage and performance over time

***

### FAQ

#### Why do I need to enter competitors?

Competitor data helps the system benchmark your performance and generate more relevant insights.

#### Can I update this information later?

Yes, you can update your website, competitors, and business profile at any time.

#### What is the initial AI visibility analysis?

It is a quick scan of your website to evaluate how your brand appears across AI systems.

#### How many team members can I add?

The number of team members depends on your subscription plan.

#### How do I switch between projects?

Use **Switch Project** in the interface to move between different workspaces or websites.

#### Can I manage multiple websites under one account?

Yes, you can add and manage multiple websites and switch between them easily.

#### What are credits used for?

Credits are consumed when using certain features. You can track usage and remaining credits in the interface.


# Integrations

Execute your SEO and GEO strategy across content, technical, and on-page optimization.

###


# How to connect Shopify

\
Please follow the steps below to create and install the custom app.

***

### Step 1: Access the Shopify App Settings

<br>

1. Log in to your Shopify Admin. <https://admin.shopify.com>
2. Search for **Apps**.
3. Click **Apps and sales channel settings**.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=YzFhZjdmMTg1NTA2OGRhMTI1ODMwNTI3Yjg3N2I1MjRfOHQ4SzlZZ0tpVmp2dms4SUNEQ1NnTDJjeGJtZEZjRlVfVG9rZW46Q3lEWmJ0VzY1b1FnVGd4ZDU3UmNGSnVPbkNnXzE3ODA5NjM1OTQ6MTc4MDk2NzE5NF9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

4. Click **Develop apps**.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=NDU3MDhlOTdiMTYzNWNhMTVhNTBmZmZlYzcyOTkyODBfSFpIZW1RZkRLUExKR2Q3ano3UFNKUjNDNWtuMFdFRTZfVG9rZW46SFlSUmJpOGpJb01wbnd4TlNmOGNLZ2NtbkhlXzE3ODA5NjM1OTQ6MTc4MDk2NzE5NF9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

5. Click **Build apps in the dashboard**.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=NWEwY2IxNmY0NGI4MGM0MWZiMTZkYzBiZmFlNTliNjNfWmM2VHQ1TUQ4ek42YzJGNndDODRRcnJINHlwckhHd3JfVG9rZW46QVN5U2Jjd1Fub3c3azd4eWRaYmNrSnlWbkpjXzE3ODA5NjM1OTQ6MTc4MDk2NzE5NF9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

***

### Step 2: Create a New App

1. Click **Create an app**.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=M2VmYWRkYTBiNTY4OTVkY2JkOTQ5MzM2NWZmOTA1ODdfSUNxZEFKd2M3RU94clZ4NG9QSjY2UVl1SVhldVVIRkdfVG9rZW46WkNONWJkbDZYb2VrQTR4dTF5cWNsbEh1bnplXzE3ODA5NjM1OTQ6MTc4MDk2NzE5NF9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

2. Enter any name for the **App name**.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=MDhmNDA5OTEyZmRmNzU0ZGM3MjU3MDU1YWI0OGM3NDVfYmRteHRxMU9Xc2R3RTdrMkRPQ2lkclppeUwzcDRGNXRfVG9rZW46TDY2bWJjQjhsb28zT1h4Q1RHc2NISXRrbnFsXzE3ODA5NjM1OTQ6MTc4MDk2NzE5NF9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

3. Do not modify the **App URL**.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=MWRkZGMyM2M1ZGNkODJkYmI4MmIwMWM0ODlhMzE5OWJfUTc3cnpJMmFmWXN4OHA2aGloRjRCWjdSZm1xeFN3YWtfVG9rZW46Q1FKamIyOHdxb3VvR094eXBaWWNrNDZ0bjIwXzE3ODA5NjM1OTQ6MTc4MDk2NzE5NF9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

4. Click **Configure Admin API scopes** (Select scopes).

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=YTdlM2M1Yzk5YTkyZWRiMzFkZWVhZGFhZWIzOGNkOTVfakxlRHo2T3YxY1hsRlVLQVZtUEVJb2RidldGRk5IalNfVG9rZW46RWtLbGJOSDVKb1dMdDl4cG1oRWM3blhMbm5kXzE3ODA5NjM1OTQ6MTc4MDk2NzE5NF9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

5. Enable the following permissions:
   1. `content`
   2. `read_content`
   3. `write_content`

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=MzUxZWQ5ODdhNmMzNDA5ZWFmN2VkMmNkMWEyYjgwNzVfMlBRelBGVzAyd3FMODFTQ2pNdmFBWGFaYkJtQ3Vtd3NfVG9rZW46UWluVGI2bnN1b3lPT3l4azlMUWMyY3pTbjcxXzE3ODA5NjM1OTQ6MTc4MDk2NzE5NF9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

6. For the URL field, enter our provided link in the **Redirect URL** field

<https://api.pipedream.com/connect/oauth/oa_g5KiBG/callback>

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=ZGU4NjU4ODU4OWIwYmIyODBmMmZmNWUwMjYyZTEwNWRfdmZNWEE2VkdPNVNLNGlUMlJoQVJBZUNRWmZyeGpQN0lfVG9rZW46S0E2a2JEYVJjb09pV1l4dzJ3RmNrcTU1bnFNXzE3ODA5NjM1OTQ6MTc4MDk2NzE5NF9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

7. Click **Release** to activate the app.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=NDYxMzYyNGUyYWIwMjNjZGZkMWUxYjU2NWMxMjAyYjJfYkU3ZUtoYnFZQU9LWDVsQVd4MHZrdUR0MnBuZ25LMllfVG9rZW46SmFSZWJqRFlEb0t2WDV4dVFuS2NzNmF4bkhlXzE3ODA5NjM1OTQ6MTc4MDk2NzE5NF9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

***

### Step 3: Version Settings

<br>

* There may be a **Version name** field. You may leave this blank if you prefer.
  * <br>

***

### Step 4: Configure Distribution

1. Go to **Home**.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=ZWMyZTlmNjg2YzY4NzFkMTExZTQ1MTRlMzUwMzVlNGFfRlI3bE5Sd05MczBFUjkwSmN0YUY4Yk9MblBGcElJQ0dfVG9rZW46Q0ZPTGJiT3VGb1V0bVB4ckJUVGNuQ3hMbmJoXzE3ODA5NjM1OTQ6MTc4MDk2NzE5NF9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

2. Click the small icon to proceed.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=ODE5ZjMzMzdhYmMzNWRkN2FmMmUyMGU2NzQyYmQ0MWZfbWszSUlEREZueE5GRDZsZ0x4ZEJuRWpqbFdtQ2k4SmtfVG9rZW46UzFxR2JQdzdCb1FJUWV4OVpIZGM3aGE4bjhiXzE3ODA5NjM1OTQ6MTc4MDk2NzE5NF9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

4. Select **Custom distribution**.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=ODYwN2I3YzEzYWFkNTM5NDVjYWI5NWM5NWExMGNhMjhfeUhjTkVrWnZjNkdKSUNjTm0xWGp5ckpJeHN5SFNtT3RfVG9rZW46TnRnVWJhb0JUb0haTkt4OFRVYWNmd2RIbmxjXzE3ODA5NjM1OTQ6MTc4MDk2NzE5NF9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

5. Click **Select custom distribution**.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=Zjc0Yjg1OTEwNGVmMmUxOGM2NjFkZmM1ZDJlYTljMGVfOXZVODVwOVRmeEtIUXlQM0F5OU9WQWdRTjE2ZDR0MjBfVG9rZW46S1RZSmJVbGJsb3dGd3V4QW5GY2NxTFNiblJlXzE3ODA5NjM1OTQ6MTc4MDk2NzE5NF9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

6. Enter your store’s domain.
7. Click **Generate link**.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=ZGI1NDlhNGY5NjE5NTBiYzIwMmYwNGMwY2NmNGY0ZjFfbUY5Vkw5TDQ3eDg3bkNza2NHdmRkYzZyMW01MUNTa0ZfVG9rZW46U25USWJvYjVJb3dDZDl4eUc2ZWMwWjM5blBiXzE3ODA5NjM1OTQ6MTc4MDk2NzE5NF9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

8. Copy the generated **Install link**.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=ZWFkZWQzMzhiOTk3YzZiMjEzMDllNjUzZmE2YjZlY2NfY2xrWVlVeU5rMnVLaXBpeW92S2RiMWlFZ2RLMklXT0hfVG9rZW46R2RFbWJRcUdvb0xNUW54TjlteGNiQ2tnbkdkXzE3ODA5NjM1OTQ6MTc4MDk2NzE5NF9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

***

### Step 5: Install the App

<br>

1. Open the generated install link.
2. Click the app.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=YWEzNWE5MmFmZWZhYjRjMTIyZDdkNDUzNWQyMDRiN2FfNkVIWVpmRGM5bjlRY1FkMW0weFFramdGajlnbW5YZ3BfVG9rZW46SHZqVGJtamJSb09Ycmt4TUZwOWNvU0xZbmJvXzE3ODA5NjM1OTQ6MTc4MDk2NzE5NF9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

3. Click **Install** to complete installation.

<br>

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=ODA5ZWNiYWVhYjA1MjVhOTVhMjhlMjkyYTQzNjdkN2NfSmlqM1RuQnZUZHcyWDhZcU5sQXVYSWhkbXVhMnFlRHFfVG9rZW46TU90Q2JBamxCb00wczV4bm5NdmNsR2JjbkVmXzE3ODA5NjM1OTQ6MTc4MDk2NzE5NF9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

***

<br>

### Step 6: Confirm Installation

<br>

1. Return to the **Developer Dashboard**.
2. If it shows **Install: 1**, the app has been successfully installed.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=YzdhNjMyMDJhODhhYWU2ODcyZTBmOTMyMTJhNzVmZmVfZUFrRmtiSUxza05tZFllMTFqQXFvYU9aQXRaa2JIcWVfVG9rZW46WFRkNWJUUm5Ib0FlbVd4WGk1dWM3bjFIbmpJXzE3ODA5NjM1OTQ6MTc4MDk2NzE5NF9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

***

### Step 7: Retrieve API Credentials

<br>

1. Go to **Settings**.
2. Copy the **Client ID** and **Client Secret**.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=MzIzMTgxZTIxNzdkN2E3NDM0YTFjMzU0OTYzZTIwNjhfdFRJWnJoMkRMaExPUWhZenUyQWV2OEhvREp6dmI4RkxfVG9rZW46RWFaN2JyWFNhb3RwR094S0RLU2NheDdlbkZkXzE3ODA5NjM1OTQ6MTc4MDk2NzE5NF9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

3. Paste them in Workfx AI seo-geo agent securely.

***

#### 🔐 Security Note

Your **Client ID** and **Client Secret** are sensitive credentials.Please store them securely and do not share them publicly.


# How to connect Wordpress

This guide walks you through how to connect your self-hosted WordPress website to Workfx, so you can publish generated blog posts directly to your site with one click.

### **Step 1: Open the Blog Post Publishing Panel**

After generating a Blog Post in Workplace:

1. Find your generated Blog Post
2. Click **Publish**

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=MjVlOTUyOGE4MmE5YzNmMTA0OTNkZGY0ZjdlMDU0MDNfeG90WGRiSlJmME1aekNWOEhNS3Y0YXJkdlA0UHNFMXdfVG9rZW46WEhaZ2JZQ0F6bzdLSzR4VGNvV2Mza0hSbkxlXzE3ODA5NjQyMTQ6MTc4MDk2NzgxNF9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

3. In the pop-up publishing window
4. Select:

**WordPress (Self-hosted)**

5. Click **Connect**

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=ZTMwMWY0ZjM3YTc0MjcxNjAzNmExMzk1NmYyNmE0OWZfek1sZmZ2MlhrT0tWZGhDZGpFMzJDZ2syclBFTjFhRmpfVG9rZW46RFVWV2JvWW1Db0JJWkF4ZEVzbGM0TmtxbnRlXzE3ODA5NjQyMTQ6MTc4MDk2NzgxNF9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

***

## **Step 2: Fill in Your WordPress Connection Information**

You will need to provide three pieces of information:

* Site URL
* Username
* Application Password

Below is how to find each one.<br>

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=YWU0NDI1MjgyYTc2NDhjOGVmYzJiMzhhOGI5MjdmMmVfdU1JY2V2TEhiTjlvMDE0TmVKTXI3ZzdkdkwwZk9rRGtfVG9rZW46T1diV2JkV3RZbzlFYkh4RTh2b2NjYmU4bnRoXzE3ODA5NjQyMTQ6MTc4MDk2NzgxNF9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

***

### **2.1 Find Your Site URL**

The Site URL is your WordPress website address.For example:blogs.workfx.aiUsually, this is the same URL you use to access your blog.

#### **Example**

If your website URL is:[https://blogs.workfx.aiThen:Site](https://docs.workfx.ai/get-started/publish-your-docs/https:/blogs.workfx.aiThen:Site) URL = blogs.workfx.ai

***

### **2.2 Find Your Username**

Your Username is the username you use to log into your WordPress admin dashboard.Usually, the login page requires:

* Username / Email
* Password

The Username field is the one you need to enter here.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=MDdhMWUyMjVlZTMxNTg4MDE5M2VhYzk1ZGU3Y2FmMGVfUlRTaFRWbHY4bUdhNENMb2R2TVI3OGFkazFUTWs2dWNfVG9rZW46S3RFSGJmWnhSb2VGVWt4Z3hTZWNwUzhLbk5lXzE3ODA5NjQyMTQ6MTc4MDk2NzgxNF9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=N2I0MTJjMGUzYWU5NGJkYjdiMmU0NjUxNTQxMTYwNGJfSjNZWThjZGNuVFRvTFhFRWdjM2xEOFY1SHdNUHZhaTFfVG9rZW46SWlaY2JRZjNib0EyNUp4MkIxRGN0bWVBbktnXzE3ODA5NjQyMTQ6MTc4MDk2NzgxNF9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

***

<br>

### **2.3 Get the Password**

You need to create a new WordPress user.During user creation, WordPress will automatically generate a password for that user. You only need to copy that password and paste it into Workfx.

***

#### **Step A: Open the WordPress Dashboard**

Log in to your WordPress Admin Dashboard.The URL usually looks like:yourwebsite.com/wp-admin

***

#### **Step B: Open the Users Page**

From the left sidebar menu, find:UsersClick it.Then click:Add User

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=MmRkMWQxYzViZGI4YTVhY2Y1MWIxMWI2YzJjYTRiZmNfUTRGelJTZ3JYbmJ6cXhyQVdiczYzUVhLSHdodnRFUzJfVG9rZW46WjA2d2JQMkJib1BDVW14VDA5N2NWd0VCblFkXzE3ODA5NjQyMTQ6MTc4MDk2NzgxNF9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

***

#### **Step C: Fill in User Information**

You need to enter:

* Username
* Email

For example:Username: workfx Email: <your@email.com>

***

#### **Step D: Copy the Auto-generated Password**

When creating the user:WordPress will automatically generate a password.For example:abcd efgh ijkl mnop qrst uvwxCopy this password.⚠️ Important:

* This password is automatically generated by WordPress
* Make sure to copy the full password
* You will need to paste it into the Password field in Workfx

<br>

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=NzdiNjBiNTEyYjYyODYyYzdlMDlmN2QyMTY4MDM4OGRfeTNhYjBEZW11c2M3N21kRXVZZTEwb1gxand0TTFWNjdfVG9rZW46UHFsMGJzaVY0b2s1QUF4U2k4UWNQY05yblJyXzE3ODA5NjQyMTQ6MTc4MDk2NzgxNF9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

***

#### **Step E: Confirm User Creation**

After filling in the information:You MUST click:Add Userat the bottom left corner.The password only becomes valid after the user is successfully created.

***

#### **Step F: Return to Workfx and Complete the Connection**

Go back to the WordPress Connect page in Workfx.Fill in:

* Site URL
* Username
* Password (the password you copied earlier)

Then click:ConnectYour WordPress website should now connect successfully.

***

## **Step 3: Complete the Connection**

Return to the Workfx connection window\.Fill in:

* Site URL
* Username
* Application Password

Then click:ConnectIf everything is correct, your WordPress website will connect successfully.<br>

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=MTVjYTIxNjU0NGVjNWVmY2RmYWQ2Y2FjNGMxOTEzMGFfeXE1WUdvcXBnUkdOOW9IbUxMUnRpWGx6b29KUklpRlNfVG9rZW46QUFyS2JZZTRZb0RmTTF4dzNTSGNaRDl4bnBlXzE3ODA5NjQyMTQ6MTc4MDk2NzgxNF9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

***

## **Step 4: Start One-Click Publishing**

After the connection is completed:Whenever you generate a Blog Post, simply click:Publish → WordPressYour content will be published directly to your website.No repeated setup is required.

***

## **Frequently Asked Questions**

### **What if the connection fails?**

Please check:

* Whether the Site URL is correct
* Whether the Username is correct
* Whether the Application Password was copied completely
* Whether your WordPress is a self-hosted version
* Whether REST API is enabled on your website

***

### **What is Self-hosted WordPress?**

It means:

* You purchased and deployed WordPress on your own server/domain
* You can access `/wp-admin`

This is different from the hosted version on WordPress.com.

***

## **What You Can Do After Connecting**

* AI-powered blog generation
* One-click publishing to WordPress
* SEO content distribution at scale
* Multi-site content operations
* Automated content workflows


# How to connect Linkedin


# Data & Tracking Setup


# How to connect to GA4

This guide walks you through how to create and connect GA4 to your website so you can track traffic, user behavior, and conversions.

### What this feature does

Before using our product, your website data needs to be accessible.

This process consists of two steps:

1. Let Google Analytics 4 collect your website data
2. Connect GA4 to our platform

***

### Set up Google Analytics 4 for your website

***

### If you don’t have a GA4 account

#### Step 1: Create a GA4 account

**1.1 Start setup**

* Open Google Analytics
* Click **Start measuring**

<figure><img src="/files/rLinqYpRI6dM33mfDYVw" alt=""><figcaption></figcaption></figure>

**1.2 Create an account**

* Enter your **Account name**

**1.3 Create a property (your website)**

* Enter your website name
* Select timezone (e.g. Australia/Sydney)
* Select currency
* Choose industry category and business objectives

<figure><img src="/files/gN2eJi21XIwNCXByM7Zi" alt=""><figcaption></figcaption></figure>

***

#### Step 2: Create a data stream

**2.1 Select platform**

* Choose **Web**

<figure><img src="/files/jdYqZx6WYY7i5ntOByad" alt=""><figcaption></figcaption></figure>

**2.2 Enter details**

* Enter your website URL
* Name your data stream
* Click **Create and continue**

<figure><img src="/files/jZNoKMFb5NiuooYlZDdB" alt=""><figcaption></figcaption></figure>

***

#### Step 3: Install GA4

**Option A: Manual installation (for custom websites or technical users)**

**Copy the code**

* Click **View tag instructions**
* Copy the **Global Site Tag (gtag.js)**

<figure><img src="/files/ZOrRYm3tJwJ8cRcIb2EX" alt=""><figcaption></figcaption></figure>

**Add to your website**

* Paste the code into every page of your website, right after the `<head>` tag
* Make sure it is applied across all pages

**Publish**

* Save and deploy your website

***

**Option B: Install using Measurement ID (for non-technical users)**

**Step 1: Open GA4 dashboard**

* Go to Google Analytics <https://analytics.google.com/>
* Log in to your account
* Open your property (website)

**Step 2: Open Admin**

* Click **Admin (gear icon)** in the bottom-left

<figure><img src="/files/BNWEZH12Q07Z2WTBmpIs" alt=""><figcaption></figcaption></figure>

**Step 3: Go to Data Streams**

* Under Property, click **Data Streams**
* Select your website

<figure><img src="/files/Cp4r15AtQ0a1fIlKIrf0" alt=""><figcaption></figcaption></figure>

**Step 4: Find Measurement ID**

* Locate **Measurement ID (G-XXXXXXXXXX)**
* Copy it

<figure><img src="/files/obGJduLSRLHxLkrurcxE" alt=""><figcaption></figcaption></figure>

***

**Step 5: Add it to your website**

* **Shopify**
  * Settings → Customer events / Google channel
  * Paste the Measurement ID
* **WordPress**
  * Install a plugin (recommended: Site Kit)
  * Log in to GA4
  * Connect automatically
* **Wix**
  * Settings → Marketing Integrations
  * Paste the Measurement ID

***

#### Step 4: Verify

**4.1 Open Realtime**

* Go to GA4 → **Realtime**

**4.2 Test**

* Visit your website

**4.3 Confirm**

* If you see active users → GA4 is successfully connected and collecting data

***

### Connect GA4 to our platform

After GA4 is set up and collecting data, you can proceed to connect it to our platform.

👉 This allows us to analyze your traffic, visibility, and performance data.


# How to set up Tracking


# Step 1 - Check Your Visibility

Start by understanding how your brand is seen in AI search — before you take any action.

### What this workflow is about

Before you create content or optimize anything, you need to know:

* where you are visible
* where you are missing
* and why

AI visibility is not random — it’s driven by how well your content is understood, trusted, and structured.

This step gives you a **clear baseline** of your current performance, so you don’t operate blindly.

***

### How this connects to the product

In this step, you will use:

* **Data (GEO Visibility)**\
  → to measure your visibility score and key signals
* **Competitor Analysis**\
  → to see who is capturing your visibility
* **GEO & SEO Report**\
  → to identify gaps and get a prioritized to-do list


# Step 2 - Create & Optimize Content

Execute your SEO and GEO strategy across content, technical, and on-page optimization.

### What this workflow is about

After identifying your gaps, the next step is execution.

In AI search, improving visibility is not one action — it’s a combination of:

* creating the right content
* building trust signals across platforms
* fixing technical and structural issues
* improving on-site conversion

This step is about turning insights into **a complete execution system**, not just isolated actions.

***

### How this connects to the product

In this step, execution happens across four key areas:

***

#### 1. Content Creation & Optimization

Create content that matches real queries and is structured for AI understanding.

You will use:

* **Content Strategy / Content Assistant**\
  → to generate and organize content around keywords and queries

👉 This is the foundation of visibility.

***

#### 2. Build Trust & Presence

Increase your brand’s credibility through real discussions and external signals.

You will use:

* **Reddit Management**\
  → to engage in communities and generate discussion-based content
* **Social Media (coming soon)**\
  → to build consistent brand presence across platforms

👉 This improves how AI evaluates and trusts your brand.

***

#### 3. Fix Technical Issues

Remove barriers that prevent AI from understanding and indexing your site.

You will use:

* **Technical Audit**\
  → to identify and fix structural and performance issues

👉 This ensures your content can be properly read and ranked.

***

#### 4. Optimize Pages & Conversion

Improve how users and AI interact with your pages.

You will use:

* **Product Listing Optimization**\
  → to improve product pages, descriptions, and images

👉 This turns visibility into actual results.

***

👉 This step answers:\
**“How do I turn insights into real growth?”**


# Step 3 - Track & Improve

Measure your visibility and continuously improve your performance in AI search.

### What this workflow is about

After you create content, build trust, and optimize your site, the next step is to understand what’s actually working.

In AI search, visibility is dynamic:

* some queries perform better
* some content gets cited more often
* some channels drive real traffic and conversions

This step is about turning results into **feedback loops**, so you can continuously refine and scale your strategy.

***

### How this connects to the product

In this step, you will track performance across three key areas:

***

#### 1. AI Visibility

Understand how your brand appears across AI systems over time.

You will be able to:

* track visibility across major LLMs
* monitor changes in your presence and ranking

👉 This shows **whether your visibility is improving**.

***

#### 2. Query Performance

See which queries are driving exposure.

You will be able to:

* track which questions your brand appears in
* identify high-performing topics and content

👉 This shows **what content is actually working**.

***

#### 3. Traffic & Conversion

Connect visibility to real business results.

You will be able to:

* track traffic via GA4
* measure conversions from organic and AI-driven traffic

👉 This shows **what drives real outcomes**.

***

### Result

You can:

* see where you’re gaining traction
* identify which content and queries perform best
* connect visibility to traffic and conversions
* continuously refine and scale your strategy


# Quick Check

Understand how your brand appears in AI search — and identify where you’re missing visibility.

### What this module does

GEO Visibility shows how your brand is understood, ranked, and mentioned across AI systems.

It helps you:

* measure your current AI visibility
* compare against competitors
* identify gaps in content, authority, and structure

***

## How to use GEO Visibility

### Step 1: Enter your website

Enter your brand name andwebsite URL, then start the analysis.

The system will:

* scan your brand and website
* analyze how AI systems interpret your content
* collect data on mentions, structure, and authority

👉 This builds your **baseline visibility data**.

***

### Step 2: Review your GEO Visibility Score

<figure><img src="/files/DlWi67nyIjzT08S9UqZh" alt=""><figcaption></figcaption></figure>

After the scan, you will see your overall **GEO Visibility Score**.

This score is based on five factors:

* **AI Citation Rate**\
  → how often your brand appears in AI answers
* **Content Authority**\
  → how credible your content looks to AI
* **Structured Data**\
  → how easy your site is for AI to read
* **Content Richness**\
  → how complete your topic coverage is
* **Semantic Optimization**\
  → how well your content matches real queries

👉 This helps you understand **how strong your AI visibility is today**.

***

### Step 3: Compare with competitors

Scroll to see **where you are mentioned**.

The system will show:

* which brands AI recommends in your category
* how often competitors appear vs your brand
* your position in the category

👉 This shows **who is capturing visibility instead of you**.

***

### Step 4: Identify gaps and next actions

Based on your data, you can identify what to improve.

If your visibility is low, you can:

* create content based on real queries
* build authority across platforms
* improve your site structure

👉 This helps you decide **what to fix next**.

***

### Result

You can:

* understand how AI systems see your brand
* benchmark against competitors
* identify missed visibility opportunities
* take action based on clear data

***

### FAQ

* **Do I need to complete this step before using other modules?**

Yes. For first-time users, GEO Visibility analysis must be completed before accessing other modules such as Content Optimization, Product Listing Optimization, Reddit Management, or Tech Audit.

* **Can I re-run the analysis later?**

Yes. After making updates to your website or content, you can click Refresh in the upper-right corner to generate a new visibility report and compare changes over time.

* **What if I want to understand each score in more detail?**

You can hover over each metric in the score table to view a short explanation of what it measures and why it matters.

* **What should I do after checking my GEO Visibility Score?**

The score is your starting point. From there, you can move into Content Optimization, Reddit Management, Product Listing Optimization, or Technical Audit depending on where your biggest gap appears. Suggest solving the most obvious and serious technical problems first.

***


# Performance

Track website traffic and AI visibility to understand how queries and channels drive growth, and support continuous optimization.

### What this does

The Tracking module helps you monitor how your website performs over time.

It allows you to:

* Track changes in website traffic
* Monitor AI visibility across major platforms
* Analyze performance at the query level
* Understand how different channels contribute to growth

This module turns performance data into a structured feedback loop, so you can continuously refine your strategy.

***

### How to use

#### Step 1: Connect your data sources

Before using this module, make sure your data is connected:

* Connect Google Analytics 4 to track website traffic

<figure><img src="/files/FQifvhq4l7ZQuM9YVm3O" alt=""><figcaption></figcaption></figure>

* Ensure your queries are set up in Content Assistant&#x20;

<figure><img src="/files/vQCDQexguVEIXzHXvxus" alt=""><figcaption></figcaption></figure>

***

#### Step 2: View Performance Overview

This section provides a high-level view of your performance.

**Traffic Sources**

You can track changes in:

* Organic search traffic
* AI-driven traffic
* Social media traffic

<figure><img src="/files/GIE04ryKfh5O0l7Z8UdV" alt=""><figcaption></figcaption></figure>

This helps you understand which channels are contributing to growth.

***

**AI Visibility**

You can monitor:

* Visibility percentage across major AI platforms
* Ranking changes over time

<figure><img src="/files/sjxxzeeKnymN1OqK9fPl" alt=""><figcaption></figcaption></figure>

This helps you evaluate your overall presence in AI search.

***

#### Step 3: Analyze Query Attribution

This section shows performance at the query level.

**Query List**

Queries are based on the keywords and topics selected in Content Assistant.

<figure><img src="/files/O2kSW8H3g2EEBCCWkzOX" alt=""><figcaption></figcaption></figure>

***

**Query Performance**

<figure><img src="/files/HKGyjWKzJeXqDd8u5Pf2" alt=""><figcaption></figcaption></figure>

For each query, you can view:

* Overall visibility
* Overall ranking

***

**Platform Breakdown**

Each query includes performance across different AI systems:

* ChatGPT
* Claude
* Gemini

This helps you compare performance across platforms.

***

#### Step 4: Monitor trends over time

Use the data to:

* Identify high-performing queries
* Track visibility improvements
* Detect changes in traffic sources

***

### Result

By using this module, you will be able to:

* Monitor traffic and visibility trends over time
* Identify which queries and content perform best
* Understand which channels drive growth
* Compare performance across AI platforms
* Continuously optimize your strategy based on data

***

### FAQ

#### Why do I need to connect GA4?

GA4 provides the traffic data required to analyze performance and channel contribution.

#### What is AI Visibility?

AI Visibility reflects how often and how prominently your brand appears across AI systems.

#### Where do the queries come from?

Queries are based on the keywords and topics selected in Content Assistant.

#### Why do rankings differ across platforms?

Different AI systems use different data sources and ranking logic, so results may vary.


# Content Optimization

Turn your keywords and queries into scalable, AI-optimized content — tailored to your brand and ready for multi-platform publishing.

### What this module does

Content Assistant helps you turn keywords into real content.

You select keywords → map real user queries → generate content in batches.\
All content is aligned to your brand, optimized for GEO & SEO, and adapted to different platforms.

***

## How to use Content Assistant

### Step 1: Select keywords

<figure><img src="/files/LYDDinTrWFYvGqt933Df" alt=""><figcaption></figcaption></figure>

In the **Keyword Selection** section, choose a semantic cluster and keywords.

The system will:

* recommend keyword groups based on your brand
* show data like traffic potential, CPC, and competition

You need to:

* select one keyword group (semantic cluster)
* confirm the keywords you want to focus on

👉 This step defines **what topics you want to compete for**.

***

### Step 2: Map queries

Click **“Capture This Traffic”** to generate queries.

<figure><img src="/files/CtWHGInjL4sUTPSWLuH0" alt=""><figcaption></figcaption></figure>

The system will:

* generate real user questions based on your keywords
* show data like search volume, visibility, and competition

You can:

* select one or multiple queries
* add your own custom queries

👉 This step defines **what exact questions your content will answer**.

***

### Step 3: Generate content

Click **“Generate Content Matrix”**.

<figure><img src="/files/bb4wQbf9qdu7v1zlMalv" alt=""><figcaption></figcaption></figure>

The system will:

* create a list of content based on your selected queries
* align all content around the same keywords and queries

You can:

* select content pieces
* choose platforms (LinkedIn, X, Blog, etc.)
* choose language
* click **“Batch Generate Content”**

👉 This is where you generate content **at scale**.

***

### Step 4: Review and export content

After generation, go to the **Generated** page.

<figure><img src="/files/rXyBkZlCdFsbWByXxPmn" alt=""><figcaption></figcaption></figure>

You can:

* view content
* edit text
* copy in different formats
* export content

Then publish to your selected platforms.

***

### Step 5: Schedule content (optional)

In the **Content Calendar**, you can:

* drag generated content into specific dates
* plan your publishing schedule

***

### Result

You get a content system where:

* all content is based on the same keywords and queries
* content is optimized for AI visibility and SEO
* formats are adapted to different platforms
* you can generate and scale content in batches

***

### FAQ

* **What if the recommended keyword clusters do not match my needs?**

You can browse more semantic clusters, regenerate recommendations, or manually add custom keywords to expand your strategy.

* **Can I check more keyword data before selecting a cluster?**

Yes. Click View Full Strategy to see detailed keyword data such as search volume, CPC, and competition before making your decision.

* **Should I generate content for many queries at once?**

You can, but in many cases focusing on one query first helps you validate performance more clearly before expanding.

* **Can I add my own keywords and queries instead of using system-generated ones?**

Yes. You can manually add custom keywords and queries at the bottom of the page if you already know the exact user questions you want to target.

* **Is publishing automated?**

Not yet. Auto-publishing is currently in development. For now, content can be exported or copied and published manually.


# Reddit Management

Turn Reddit into a conversion channel and a long-term GEO content asset — with AI-generated, community-native content.

### What this module does

Reddit Management helps you find the right Subreddits, decide what to say, and generate content that works for both Reddit users and AI search.

***

### How to use Reddit Management

#### Step 1: Add and select subreddits

Click **“Add New Subreddit”** and enter keywords related to your business.

<figure><img src="/files/daeJzzO0JP3nR90qgd8a" alt=""><figcaption></figcaption></figure>

The system will:

* automatically generate related keywords
* search and recommend relevant subreddits
* analyze each subreddit’s topic and audience

You can:

* select subreddits from the recommendations
* add them to your subreddit list
* repeat searches with different keywords to expand your list
* remove any subreddit that is not relevant

👉 This step defines **where you will operate on Reddit**.

***

#### Step 2: Set your marketing goal

<figure><img src="/files/wnnhkURdqFQ8jiBT3GWS" alt=""><figcaption></figcaption></figure>

Choose a marketing goal based on your current needs, or enter a custom goal.

These goals are used to:

* decide whether you should focus on replying or posting
* guide what type of content will be generated
* shape how your brand appears in discussions

👉 This step defines **what you want to achieve on Reddit**.

***

#### Step 3: Generate an action plan

Click **“Generate Action Plan”**.

The system will create two types of opportunities:

1\. High-potential replies

* recommended existing posts to reply to
* usually high-intent discussions
* good for quick exposure and conversions

2\. High-potential posts

* suggested topics to start new threads
* aligned with subreddit culture
* useful for long-term visibility and GEO value

👉 This step defines **what you should do next**.

***

#### Step 4: Generate and publish content

Select any action item (reply or post), then generate content.

<figure><img src="/files/sOtgS09yhrORqfUUFuPA" alt=""><figcaption></figcaption></figure>

You can:

* generate replies or full posts
* view the original Reddit thread
* edit the generated content
* copy or download the content
* manually publish it on Reddit

👉 This is where you **execute your Reddit strategy**.

***

#### Step 5: Use targeted tools for specific needs

In addition to the action plan, you can use:

<figure><img src="/files/SgfTUsl5XrYTqlk0DXQq" alt=""><figcaption></figcaption></figure>

Pain Point Tool

* generate replies for specific threads
* focus on addressing user problems directly
* useful for high-conversion interactions

<figure><img src="/files/QXYWGqiOgPnlJWhyUjMH" alt=""><figcaption></figcaption></figure>

Growth Studio

* generate custom posts based on your own topic ideas
* create discussions you want to lead
* useful for controlled messaging and campaigns

👉 These tools help you **handle specific opportunities more precisely**.

***

### Result

You can consistently:

* find the right subreddits
* engage in the right discussions
* generate content that fits Reddit culture
* build long-term, AI-readable content assets

***

### FAQ

* **Why does the system recommend certain content opportunities first?**

Recommendations are prioritized based on current relevance, content potential, and how well they match your brand and selected goals. The system surfaces items that are easier to execute first and more likely to generate visible results.

* **Should I focus on quick content output or long-term content assets?**

Both matter, but they serve different purposes. Quick content helps you test response and capture immediate traffic, while structured content builds long-term search visibility and GEO value.

* **What if the generated content does not fully match my preferred tone?**

You can edit the content before publishing or manually re-enter the prompt with more qualifiers to ask Agent to regenerate the content. The generated version is designed as a strong starting point, while final adjustments help align it with your brand voice.

* **Why is one topic sometimes expanded into multiple content directions?**

Because one topic often contains different search intents. Expanding it into multiple angles helps cover broader user questions and increases long-term discoverability.

* **Do I need to generate content every day?**

Not necessarily. Consistency is more important than frequency. A stable content rhythm usually performs better than short bursts of high output.


# Instagram & Facebook

Generate high-performing Instagram and Facebook posts in one flow, from idea to visuals to captions, optimized for reach, conversion, and AI visibility.

### What this does

This feature helps you create complete Instagram and Facebook posts using structured **Post Starters**.

Instead of starting from scratch, you can select a proven content direction, customize it with your input, and generate:

* Ready-to-post images
* Platform-optimized captions
* Structured content designed for visibility and conversion

It is designed to turn content creation into a fast, repeatable workflow.

***

### How to use

#### Step 1: Choose a Post Starter

Start by selecting a **Post Starter**, which represents a proven content angle.

Examples include:

* New Drop (launch moments)
* UGC Feel (natural usage)
* Social Proof (results and trust)
* Offer Push (promo moments)

<figure><img src="/files/yH5CeBDMrFjctdICvhZ8" alt=""><figcaption></figcaption></figure>

Each Post Starter is designed for a different conversion goal (sell, trust, proof, convert).

***

#### Step 2: Pick a format

After selecting a Post Starter, choose a specific format:

* Launch Reveal
* Hero Product
* Drop Teaser
* Colorway

<figure><img src="/files/kN8uq1RExrHkunEmWyih" alt=""><figcaption></figcaption></figure>

This defines how your content will be framed and presented.

***

#### Step 3: Add your input

Provide content input in one of the following ways:

* Paste a link (product page, landing page, etc.)
* Upload an image

<figure><img src="/files/8jNmI2QgGgPvQaysWSPe" alt=""><figcaption></figcaption></figure>

The system will use this input to generate visuals and captions.

***

#### Step 4: Customize settings

Adjust generation parameters based on your needs:

* Number of images
* Image ratio (4:5, 4:3, 1:1, 9:16)
* Visual style
* Platform (Instagram or Facebook)

<figure><img src="/files/ci1pBdrDHTTF2Ut1feb0" alt=""><figcaption></figcaption></figure>

***

#### Step 5: Generate content

Click generate to receive a full content package:

* Multiple ready-to-post images
* Caption optimized for platform distribution
* Structured copy aligned with engagement and conversion patterns

<figure><img src="/files/dMFdMhMAOOEwr61DkVMu" alt=""><figcaption></figcaption></figure>

***

#### Step 6: Download or reuse

You can:

* Download all images in one click
* Copy the caption for publishing
* Reuse the same setup for future posts

***

### Result

After using this feature, you will be able to:

* Produce consistent, high-quality social content
* Reduce time spent on ideation and design
* Use proven content structures instead of guessing what works
* Scale content production with minimal effort

***

### FAQ

#### Q1: Do I need to write my own captions?

No. Captions are automatically generated and optimized for the selected platform.

***

#### Q2: Can I use my own content idea?

Yes. You can modify the input freely or use your own links and assets to guide generation.

***

#### Q3: What is a Post Starter?

A Post Starter is a predefined content direction based on proven social media patterns, such as product launches, social proof, or promotional pushes.

***

#### Q4: Are the images ready to post?

Yes. All generated images are formatted and designed for direct publishing.

***

###


# Product Listing Optimization

Optimize your product pages and generate platform-ready images — all tailored for SEO, AI visibility, and conversion.

### What this module does

Product Listing helps you improve how your products are presented and discovered.

You can:

* optimize product descriptions with SEO & AI-friendly structure
* generate structured data (Schema) and image Alt text
* create product images adapted to different platforms
* generate matching copy for each image

***

## How to use Product Listing

***

### Feature 1: Optimize Product Page

#### Step 1: Enter product information

<figure><img src="/files/nuXgC9YsawwIrM8Fj5ew" alt=""><figcaption></figcaption></figure>

In the input box:

* paste your **product URL**\
  or
* enter your **product description**

Then:

* click **“Optimize Product Page”**
* click **“Generate”**

👉 This step tells the system **what product to optimize**.

***

#### Step 2: Review and edit content

<figure><img src="/files/QMR9CW5pO8uzQlKKfips" alt=""><figcaption></figcaption></figure>

The system will generate:

* optimized product description
* product Schema (structured data)
* image Alt text

You can:

* edit the content directly
* copy in different formats (text / HTML)
* download the content
* switch to full-screen for editing

👉 This step helps you **finalize your product content**.

***

#### Step 3: Use supporting materials

The system also provides:

<figure><img src="/files/8B4XdVltMUQZPOqucqYx" alt=""><figcaption></figcaption></figure>

* **Product Schema**\
  → ready-to-use structured data with implementation instructions\
  → copy and add to your website backend

<figure><img src="/files/qxlF7mneWcdYQPizEqeQ" alt=""><figcaption></figcaption></figure>

* **Image Alt text**\
  → pre-written Alt text for your product images\
  → copy and use when uploading images

👉 This improves your **SEO and AI visibility**.

***

### Feature 2: Create Product Images

### **Step 1: Upload product assets**

First, upload your product image assets.The system supports:

* Uploading up to 6 asset images
* JPG, PNG, and WEBP formats

Recommended uploads:

* Clear product subject
* Clean background
* Product images with multiple angles

👉 This step determines the quality of the generated content.<br>

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=MjYzYTUyODliMzEzYTE2NjNjNzYyMmViOGMyZDE1NmVfZU5hMko2MnlkQlNEZGF0a0Qyb1pUbDd3QVQ5WU1oWk5fVG9rZW46VmQ0bmJIVjhObzNVc1V4R1Z1bWNMWHVhbkxiXzE3NzkxMjEzNDY6MTc3OTEyNDk0Nl9WNA" alt=""><figcaption></figcaption></figure>

***

### **Step 2: Choose reference style（Optional）**

If you want the generated results to be closer to a certain visual style, you can enable “reference style”（enable reference style）.After enabling, you can:

* Upload up to 6 reference style images
* Click “Extract style\&sense”

The system will automatically analyze:

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=ZWNjYjhmYzdiNGE0MGI1OGY4NThkZGU0MGYzNTYwZmJfdExaekZIMWNGQ0l0VGZPT2lWM3hmY3lWNDE1NENtVFlfVG9rZW46RkFubWJaV2s0b2FJdk14Z1lHNGM0OVl3bk9jXzE3NzkxMjEzNDY6MTc3OTEyNDk0Nl9WNA" alt=""><figcaption></figcaption></figure>

* Style color palettes（usually 3–4 colors）
* Scene tags
* Overall visual direction

After extraction, you can:

* Confirm the current style and scenes
* Re-extract new results
* Replace reference images and analyze again

⚠️ Note:After uploading reference images, you must click “Extract style\&sense”, otherwise the system cannot generate viral image sets based on the reference style.👉 This step determines the overall visual direction of the generated content.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=YTU5MmM3ZDAzYTNhNDU5MzkzOTU5YzljNDUxNzQ2ZTFfNHM2WlFncnV1MGkxMUtiR1d0dTI3bGVVUno5MHNXZkVfVG9rZW46TnJQZ2JjUElGb3FJY3N4WXZKYmNyMElTbjAzXzE3NzkxMjEzNDY6MTc3OTEyNDk0Nl9WNA" alt=""><figcaption></figcaption></figure>

***

### **Step 3: Configure generation strategy**

Configure the generation strategy according to your target platform and market.You can choose:Platform

* Owned platform
* Amazon
* TikTok
* Shopify

Aspect ratio

* 1:1
* 4:3
* 3:4
* 16:9

（Language）

* Chinese
* English

Region

* Supports most mainstream marketing regions

Different platforms and regions will affect:

* Page composition
* Visual style
* Copywriting expression
* Content generation direction

👉 This step determines the final marketing scenario adaptation of the content.<br>

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=MzA1ZTg2Mjc1ZjJlNWQxN2FhNzUxZjA0MmM5YTExOGZfMHgzSkxpUU1wMERtU3U1NUcxRndHYjR5Tk1vVGo3SmlfVG9rZW46UVJvVGIzVXJPb2xIN1Z4TXRTTWM2WUVHblhlXzE3NzkxMjEzNDY6MTc3OTEyNDk0Nl9WNA" alt=""><figcaption></figcaption></figure>

***

### **Step 4: Set generation content**

Choose the types of images you want to generate.You can generate:

* Sense images
* Selling-point images

The system supports:

* Up to 5 Sense images
* Up to 5 Selling-point images

You can freely combine based on your needs:

* Generate only Sense images
* Generate only Selling-point images
* Generate both types at the same time

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=YmRlY2ZhMmEyNGYzZDBhNzA4ZmZiZTljMjYwN2M2OGVfMEhnTEVVeWVkOGp3QUp5Y1BueFl6ZE1IaUxDQ3laUnNfVG9rZW46RVJmNmJRVFdsb3o4Z3N4N3llTGM0U3IybmZmXzE3NzkxMjEzNDY6MTc3OTEyNDk0Nl9WNA" alt=""><figcaption></figcaption></figure>

#### **What are Sense images suitable for?**

Sense images are more suitable for:

* Showing product usage scenarios
* Creating atmosphere and immersion
* Seeding content and social media marketing

For example:“What does the product look like in a real-life scenario?”

#### **What are Selling-point images suitable for?**

Selling-point images are more suitable for:

* Highlighting product functions
* Emphasizing core advantages
* E-commerce conversion and advertising display

For example:“Why is this product worth buying?”👉 This step determines whether the content focuses more on “awareness” or “conversion”.

***

### **Step 5: Fill in Core selling points**

In the Core selling points section, enter the important features and advantages of the product.For example:

* Product name
* Core selling points
* Target audience
* Intended scenarios
* Specific parameters

If you are unsure how to describe the product, you can click “AI Writing” in the upper-right corner.The system will:

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=N2E4ODc3OGNkYjFjNDYxMjQwN2M0ODY3NWFjYzRlZTNfcmh6OFY1Y2FwTUlTYUhrWklvanZ2NENhd1hEZTdRRGNfVG9rZW46WXVZQmJzV3F0b2RKRnJ4Y29OYWNSN1FTbmplXzE3NzkxMjEzNDY6MTc3OTEyNDk0Nl9WNA" alt=""><figcaption></figcaption></figure>

* Optimize existing content
* Supplement selling point expressions
* Automatically organize marketing language

If you have not entered any content, you can also directly click “AI Writing”.The system will automatically generate Core selling points descriptions based on:

* Uploaded product images
* Product features
* Visual content

👉 This step determines the marketing expression and conversion direction of the generated content.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=NjRhNDhiY2ZjNjU5ZDQ4ZWU1NTMzZTcxODQ5MGYxZDNfUXdIU1VjWUxHZVlhVnZmVndNSmV1VXZoV2l0bXdjNVVfVG9rZW46VE5rWmJQMGpWb2JTZ2p4d1JNYWNyZlJUbnpnXzE3NzkxMjEzNDY6MTc3OTEyNDk0Nl9WNA" alt=""><figcaption></figcaption></figure>

***

## **Results**

Through the Product images module, you can continuously achieve:

* Quickly generate marketing image sets
* Unify visual style and brand expression
* Reduce design and content production costs
* Adapt to different platforms and regional needs
* Improve product display efficiency and content production speed
* Build content assets more suitable for AI and platform recommendations

***

## **FAQ**

**Why are the generated results not exactly the same as the reference style images?**

The system references the overall style direction of the uploaded images instead of directly copying the reference images. The generated results will also adapt according to your product features and platform strategy.

**Why didn’t the reference style take effect after uploading images?**

After uploading reference images, you need to manually click “Extract style\&sense”. If this step is not completed, the system cannot analyze the reference style.

**What is the difference between Sense images and Selling-point images?**

Sense images focus more on atmosphere and usage scenarios, making them suitable for social media and awareness content. Selling-point images focus more on functions and information expression, making them more suitable for conversion scenarios.

**Can I generate only one type of image?**

Yes. You can generate only Sense images or only Selling-point images without generating both at the same time.

**Will AI Writing reference the uploaded images?**

Yes. If no Core selling points are entered, the system will automatically analyze the uploaded product images and generate selling point descriptions.

**Why are the generated results different across platforms?**

Different platforms have different content preferences and display logic. For example, TikTok focuses more on visual attraction and content feeling, while Amazon focuses more on conversion and product information expression.

**Is generating more images always better?**

Not necessarily. It is recommended to first generate a small number of high-quality images for testing, then continue optimizing and expanding based on performance.

**Do I need to provide a product URL, or is a product description enough?**

Either works. A product URL helps the system understand existing page structure, while a detailed description gives more control if the page is not yet published.

**Can I edit the generated product description before using it?**

Yes. All generated content is editable. It is recommended to review and adjust wording so it fully matches your product positioning and brand tone.

**Do I need technical knowledge to use the generated Schema?**

Not necessarily. The system provides ready-to-use structured data with implementation guidance, so it can usually be copied directly to your website backend or shared with your developer.

**Why generate multiple images for different platforms?**

Different platforms have different display logic, image ratios, and content preferences. Using platform-adapted visuals usually improves presentation and click performance.

**Can I regenerate images if the first result does not fit my needs?**

Yes. You can continue describing the style you want in the input box and generate additional versions until the result fits your use case. However, it should be noted that there will be new credits consumption.


# Product Image

The Product images module helps you quickly generate product image sets suitable for different platforms and marketing scenarios. You can upload product assets, combine reference style images to extra

The Product images module helps you quickly generate product image sets suitable for different platforms and marketing scenarios. You can upload product assets, combine reference style images to extract visual styles and scene directions, and then generate Sense images and Selling-point images for e-commerce, social media, and advertising through platform strategies, aspect ratio, and selling point configurations.

***

## **What this module can do**

Product images helps you:

* Upload product assets and quickly generate marketing image sets
* Reference excellent cases and automatically extract styles and scenes
* Adapt to the visual needs of different platforms and regions
* Generate Sense images and Selling-point images
* Use AI to automatically improve product selling point copywriting
* Quickly complete the process from assets to marketing content

***

## **How to use Product images**

### **Step 1: Upload product assets**

First, upload your product image assets.The system supports:

* Uploading up to 6 asset images
* JPG, PNG, and WEBP formats

Recommended uploads:

* Clear product subject
* Clean background
* Product images with multiple angles

👉 This step determines the quality of the generated content.<br>

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=NzUxNWU2MDFhMzk1YWIwN2E5MjYzMTNiNWJjMDYwNjRfbTk2VGpqV2tEWkdEZWxpVVlpRDNBZ1ZoRmpwazhTYTdfVG9rZW46VmQ0bmJIVjhObzNVc1V4R1Z1bWNMWHVhbkxiXzE3ODI4OTQ3NTE6MTc4Mjg5ODM1MV9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

***

### **Step 2: Choose reference style（Optional）**

If you want the generated results to be closer to a certain visual style, you can enable “reference style”（enable reference style）.

After enabling, you can:

* Upload up to 6 reference style images
* Click “Extract style\&sense”

The system will automatically analyze:

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=NTA3ZTczOTUwZGY0N2E5Mzc1ZDJlNzNhOGRmNWExZDZfUlFUclVZREpoWEZzN253Y3pmeVhueGhsVHBUSm9VbEtfVG9rZW46RkFubWJaV2s0b2FJdk14Z1lHNGM0OVl3bk9jXzE3ODI4OTQ3NTE6MTc4Mjg5ODM1MV9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

* Style color palettes（usually 3–4 colors）
* Scene tags
* Overall visual direction

After extraction, you can:

* Confirm the current style and scenes
* Re-extract new results
* Replace reference images and analyze again

⚠️ Note:

After uploading reference images, you must click “Extract style\&sense”,&#x20;

otherwise the system cannot generate viral image sets based on the reference style.

👉 This step determines the overall visual direction of the generated content.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=N2Y1OGU1ZjEyOTUwMDdhNzg0ZGNhZmI1MjhhODc3OTdfd09NNExQeExjTjUwSGNES1pFQXNmWms5STBKenZIVGhfVG9rZW46TnJQZ2JjUElGb3FJY3N4WXZKYmNyMElTbjAzXzE3ODI4OTQ3NTE6MTc4Mjg5ODM1MV9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

***

### **Step 3: Configure generation strategy**

Configure the generation strategy according to your target platform and market.

You can choose:

Platform

* Owned platform
* Amazon
* TikTok
* Shopify

Aspect ratio

* 1:1
* 4:3
* 3:4
* 16:9

（Language）

* Chinese
* English

Region

* Supports most mainstream marketing regions

Different platforms and regions will affect:

* Page composition
* Visual style
* Copywriting expression
* Content generation direction

👉 This step determines the final marketing scenario adaptation of the content.<br>

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=ODU5OGU4NjVhYzBmZjJmNWU4MGUyN2JkYWI0MGQxN2ZfQ2ZBZEFvTDQ2azJ5blA1Zm9zZXBKdnR5eXFMZExBTlpfVG9rZW46UVJvVGIzVXJPb2xIN1Z4TXRTTWM2WUVHblhlXzE3ODI4OTQ3NTE6MTc4Mjg5ODM1MV9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

***

### **Step 4: Set generation content**

Choose the types of images you want to generate.

You can generate:

* Sense images
* Selling-point images

The system supports:

* Up to 5 Sense images
* Up to 5 Selling-point images

You can freely combine based on your needs:

* Generate only Sense images
* Generate only Selling-point images
* Generate both types at the same time

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=ZDg4MDJhMTNkMDk3ODc4Y2U2YjI5ODlkYWNiMWI4ODFfVU1oZjZFb1ZWU1AyRTZXRHVmeFR1S0tWUlg4Zmt3MWpfVG9rZW46RVJmNmJRVFdsb3o4Z3N4N3llTGM0U3IybmZmXzE3ODI4OTQ3NTE6MTc4Mjg5ODM1MV9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

#### **What are Sense images suitable for?**

Sense images are more suitable for:

* Showing product usage scenarios
* Creating atmosphere and immersion
* Seeding content and social media marketing

For example:“What does the product look like in a real-life scenario?”

#### **What are Selling-point images suitable for?**

Selling-point images are more suitable for:

* Highlighting product functions
* Emphasizing core advantages
* E-commerce conversion and advertising display

For example:“Why is this product worth buying?”

👉 This step determines whether the content focuses more on “awareness” or “conversion”.

***

### **Step 5: Fill in Core selling points**

In the Core selling points section, enter the important features and advantages of the product.

For example:

* Product name
* Core selling points
* Target audience
* Intended scenarios
* Specific parameters

If you are unsure how to describe the product, you can click “AI Writing” in the upper-right corner.

The system will:

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=OTgwZTdlNDRiZDg0ZmNmNjcwZWY4MGU4ZTM5M2ZkYTJfNlBXc0dYMVp4TFlxUlJieGNIelRYcWt4aDV1RERUOXlfVG9rZW46WXVZQmJzV3F0b2RKRnJ4Y29OYWNSN1FTbmplXzE3ODI4OTQ3NTE6MTc4Mjg5ODM1MV9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

* Optimize existing content
* Supplement selling point expressions
* Automatically organize marketing language

If you have not entered any content, you can also directly click “AI Writing”.The system will automatically generate Core selling points descriptions based on:

* Uploaded product images
* Product features
* Visual content

👉 This step determines the marketing expression and conversion direction of the generated content.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=NmJlNjJkOWZlNmFmNTg0MDAwZjBiMGJlODc5MTgwZmZfQWRGUlYycTVROVhmMmF2Wm5RbVNkM2ZNaWdwWURCa0dfVG9rZW46VE5rWmJQMGpWb2JTZ2p4d1JNYWNyZlJUbnpnXzE3ODI4OTQ3NTE6MTc4Mjg5ODM1MV9WNA&#x26;add_watermark=true&#x26;scene_type=CCM" alt=""><figcaption></figcaption></figure>

***

## **Results**

Through the Product images module, you can continuously achieve:

* Quickly generate marketing image sets
* Unify visual style and brand expression
* Reduce design and content production costs
* Adapt to different platforms and regional needs
* Improve product display efficiency and content production speed
* Build content assets more suitable for AI and platform recommendations

***

## **FAQ**

#### **Why are the generated results not exactly the same as the reference style images?**

The system references the overall style direction of the uploaded images instead of directly copying the reference images. The generated results will also adapt according to your product features and platform strategy.

#### **Why didn’t the reference style take effect after uploading images?**

After uploading reference images, you need to manually click “Extract style\&sense”. If this step is not completed, the system cannot analyze the reference style.

#### **What is the difference between Sense images and Selling-point images?**

Sense images focus more on atmosphere and usage scenarios, making them suitable for social media and awareness content. Selling-point images focus more on functions and information expression, making them more suitable for conversion scenarios.

#### **Can I generate only one type of image?**

Yes. You can generate only Sense images or only Selling-point images without generating both at the same time.

#### **Will AI Writing reference the uploaded images?**

Yes. If no Core selling points are entered, the system will automatically analyze the uploaded product images and generate selling point descriptions.

#### **Why are the generated results different across platforms?**

Different platforms have different content preferences and display logic. For example, TikTok focuses more on visual attraction and content feeling, while Amazon focuses more on conversion and product information expression.

#### **Is generating more images always better?**

Not necessarily. It is recommended to first generate a small number of high-quality images for testing, then continue optimizing and expanding based on performance.


# Technical Audit

Scan your website for technical issues and get clear, prioritized fixes for SEO, GEO, and user experience.

### What this module does

Technical Audit helps you identify and fix issues that affect your website performance.

It automatically:

* scans your website
* detects technical problems
* shows what impacts SEO, GEO, and UX
* gives clear, prioritized fix recommendations

You don’t need technical knowledge — just follow the priority and fix step by step.

***

## How to use Technical Audit

***

### Step 1: Run a quick scan

<figure><img src="/files/osNhzI4cwQHBVwwaLeUr" alt=""><figcaption></figcaption></figure>

Enter the **Technical Audit** module and click **“Evaluate Quickly”**.

The system will:

* scan your website automatically
* detect overall technical health
* identify key issues affecting performance

👉 This gives you a **complete overview of your website condition**.

***

### Step 2: Review detailed analysis

After the scan, enter the detailed analysis view.

<figure><img src="/files/PJdzGvAeEhWyik2bQ5CB" alt=""><figcaption></figcaption></figure>

The system will show:

* existing technical issues
* factors affecting SEO, GEO, and user experience
* areas that can be further optimized

👉 This helps you understand **what is wrong and what can be improved**.

***

### Step 3: Prioritize issues

For each issue, the system provides:

* **priority level**\
  → tells you what to fix first
* **clear explanation**\
  → explained in both non-technical and technical ways

👉 You only need to decide:\
**what to fix first, and what to fix next**.

***

### Step 4: Get fix instructions

Click **“Fix Now”** on any issue.

<figure><img src="/files/kq5Q9LEyTJk8zKDTUXzp" alt=""><figcaption></figcaption></figure>

The system will:

* provide detailed fix instructions
* explain how to solve the problem step by step

👉 This helps you **take action immediately without technical confusion**.

***

### Result

You can:

* quickly understand your website’s technical health
* identify issues that impact SEO, GEO, and UX
* fix problems based on clear priorities
* improve your site without needing deep technical knowledge

***

### FAQ

* **Do I need technical knowledge to use Technical Audit?**

No. The system explains each issue in both technical and non-technical language, so you can understand what matters even if you are not a developer.

* **Should I fix all detected issues at once?**

Not necessarily. It is usually better to start with high-priority issues first, especially those that directly affect crawling, indexing, and page performance.

* **Can I use the fix instructions directly with my developer?**

Yes. The generated fix guidance is designed to be practical enough for direct implementation or for sharing with a technical team.


# Ask Lumi

Ask Lumi is an AI assistant located at the bottom-right corner of the platform. It helps you quickly understand features, workflows, and product logic.

### What this does

Ask Lumi gives you in-product help while you work.

You can use it to:

* understand features and workflows
* troubleshoot common setup or usage issues
* get quick strategy guidance inside the platform

This helps you move faster without leaving the app.

***

### How to use

#### Step 1: Open Ask Lumi

Click **Ask Lumi** in the bottom-right corner.

This opens the chat panel from anywhere in the platform.

***

#### Step 2: Start with a suggested question

Use one of the pre-set prompts if you want a quick overview.

This is useful when:

* you are learning a feature
* you want to understand the next step
* you need a fast explanation of product logic

***

#### Step 3: Ask your own question

Type your question directly in the chat.

Common examples:

* How does this feature work?
* Why is my data not updating?
* How are keywords generated?

***

#### Step 4: Apply the guidance

Use Lumi's answer to continue your workflow.

If needed, ask a follow-up question to get a more specific answer.

***

#### Step 5: Escalate when needed

If Lumi cannot solve the issue, contact support or use your team support channel.

This is best for account-specific, technical, or edge-case issues.

***

### Result

By using Ask Lumi, you can:

* find answers without leaving the platform
* understand features faster
* unblock common questions during setup and daily use

***

### FAQ

#### What kind of questions can Lumi answer?

Lumi handles product usage, feature explanations, workflow guidance, and common troubleshooting questions.

#### Are Lumi's answers always accurate?

Lumi is reliable for most product questions. For sensitive or account-specific issues, contact support.

#### Why did Lumi not answer my question well?

The question may be too broad, too specific to your account, or outside Lumi's supported scope.

#### What should I do if my issue is not resolved?

Ask a follow-up question first. If the issue continues, contact support for direct help.


# Integrations

GitBook integrations allow you to connect your GitBook spaces to some of your favorite platforms and services. You can install integrations into your GitBook page from the *Integrations* menu in the top left.

<figure><img src="https://gitbookio.github.io/onboarding-template-images/integrations-hero.png" alt=""><figcaption></figcaption></figure>

### Types of integrations

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden></th></tr></thead><tbody><tr><td><strong>Analytics</strong></td><td>Track analytics from your docs</td><td><a href="https://www.gitbook.com/integrations#analytics">https://www.gitbook.com/integrations#analytics</a></td><td></td><td></td></tr><tr><td><strong>Support</strong></td><td>Add support widgets to your docs</td><td><a href="https://www.gitbook.com/integrations#support">https://www.gitbook.com/integrations#support</a></td><td></td><td></td></tr><tr><td><strong>Interactive</strong></td><td>Add extra functionality to your docs</td><td><a href="https://www.gitbook.com/integrations#interactive">https://www.gitbook.com/integrations#interactive</a></td><td></td><td></td></tr><tr><td><strong>Visitor Authentication</strong></td><td>Protect your docs and require sign-in</td><td><a href="https://www.gitbook.com/integrations#visitor-authentication">https://www.gitbook.com/integrations#visitor-authentication</a></td><td></td><td></td></tr></tbody></table>


# Workspace

Simplify brand identity definition, strategic planning, and multi-platform content creation in one centralized AI collaboration space. Achieve seamless brand management and team synergy.

### **What This Does**

The **Workspace (Homepage)** is the digital headquarters of WorkFX AI, serving two core functions:

* **Smart Onboarding:** Guiding new users from brand definition to content execution in minutes.
* **Collaboration Hub:** Providing a unified conversational environment for existing users to manage their entire digital presence without switching modules.

***

## **How to Use**

### **Core Functions for New Users**

#### **Function 1: Brand DNA (Identity & Management)**

* **Brand Profiling:** Establish your brand positioning, core audience personas, and unique brand voice (e.g., Professional, Empowering, or Disruptive) based on your background.
* **Dynamic Adjustments:** Brand direction evolves. If you shift strategies (e.g., from "Premium" to "Mass Market"), you can regenerate your Brand DNA at any time to ensure all future content stays synced.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=ZDVjMzQwZGNlMzQ1NGY1ZDFmZDI4YmE5Nzg1ZDAxNzVfYWlud2dxOTI4TTN4OU1FUUJxdkNuU3hJTEdkOXF6MFdfVG9rZW46WEJEQWJZelpPb3dtRmd4YlhpZ2NDc1llblliXzE3NzkxNTgyMzY6MTc3OTE2MTgzNl9WNA" alt=""><figcaption></figcaption></figure>

#### **Function 2: Strategy Brief (Planning & Trends)**

* **Competitor & Trend Analysis:** Develop strategies tailored for industry trends and GEO (Generative Engine Optimization) to stay ahead in the AI search era.
* **Keyword Locking:** Automatically embed core business keywords into all creative tasks to boost visibility across platforms.
* **Marketing Calendar:** Plan key content milestones based on your brand DNA, such as quarterly sales, industry summits, or brand anniversaries.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=NWQzOTNjOGFiZmYxMDBhZTNkMTFlOTMwNGZhMjkyNzZfZU9hRW1XRnozODhEckZkOEh5RHA0aURmTW0xRFRRYTJfVG9rZW46TGdXV2JaczB2b3RkbDN4RVNLNmM5RjVYbldiXzE3NzkxNTgyMzY6MTc3OTE2MTgzNl9WNA" alt=""><figcaption></figcaption></figure>

#### **Fonction 3: Multi-Platform Content Creation**

Drive the AI Agent to create brand-consistent content across major platforms:

* **LinkedIn:** B2B thought leadership posts or long-form Articles.
* **Blog:** SEO-friendly technical blogs or industry insights.
* **X (Twitter):** High-engagement trend tweets.
* **Instagram:** Brand showcases with visual suggestions.
* **Shopify:** Marketing descriptions or notifications for e-commerce.
* **Facebook & Medium:** Community-driven or deep-read content.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=ZWRjN2VkMDI1YWM5ZTJhM2EwMjRlYzU4NzhlMTUyYzRfVWhMUVRiNmRtTlFGemtwb2tMdURyOUVvMXV2QkVyU0tfVG9rZW46QkJ0MGJrTDZJb3dIVkV4V0FKYmNhb282bm1nXzE3NzkxNTgyMzY6MTc3OTE2MTgzNl9WNA" alt=""><figcaption></figcaption></figure>

***

### **Core Functions for Power Users**

**One-Stop Conversational Interface** Drive the Agent using natural language directly in the Workspace:

* **Instant Updates:** "Update my Brand DNA to include our new summer promotion."
* **Cross-Platform Requests:** "Based on our strategy brief, write a LinkedIn post and an Instagram caption for this launch."
* **The Vision:** A "single-window solution" where AI acts as your Chief Marketing Officer.

***

## **Result**

* **Establish a "Source of Truth":** Ensure AI follows brand-specific instructions rather than generating generic content.
* **Bridge the Strategy Gap:** Seamlessly connect high-level marketing plans with daily content execution.
* **Reduce Operational Friction:** Spend less time switching between different marketing tools and platforms.
* **Iterative Optimization:** Use version management to constantly refine marketing outputs and build brand equity.

***

## **FAQ**

#### **Q1: What is Workfx Workspace?**

It is the central home page of the platform, managing your Brand DNA, strategy, and content generation through a unified AI interface.

***

#### **Q2: Why do I need to set up Brand DNA first?**

Brand DNA is the "brain" of the AI. Without it, the AI generates generic content; with it, the AI creates precise content tailored to your specific voice and audience.

***

#### **Q3: Can I manage all platforms here?**

We support major platforms like LinkedIn, Instagram, and Blogs. While specific modules (like Reddit or Product Listings) currently have dedicated pages, we are continuously integrating all channels into the Workspace.

***

#### **Q4: Do I need to leave the Workspace to use other features?**

Our goal is a "one-stop shop." While some advanced features remain in dedicated modules for precision, we are moving everything into the conversational flow so you never have to jump out.

***

#### **Q5: Can I edit the content generated by AI?**

Absolutely. AI content is a starting point. You can ask the Agent to refine it (e.g., "make it more humorous") or manually polish it to ensure it 100% meets your standards.

***

#### **Q6: Can team members share this Workspace?**

Yes. WorkFX supports team collaboration. All brand assets, strategy briefs, and content versions are stored in a shared cloud space, ensuring every team member stays on-brand.


# Content Assistant

Content Assistant helps you start from keyword signals, match real user questions, and batch-generate SEO / GEO content optimized for platforms such as Website Blogs, LinkedIn, and X.

***

## **What this does**

**Content Assistant is the core workflow module inside Workfx AI for SEO / GEO content production.**&#x20;

Powered by AI-driven semantic analysis, user question insights, and structured content generation, it helps you move from keyword signals to understanding real user search intent, then scale content creation across different publishing platforms.

Compared to traditional content production workflows that require switching between multiple tools for keyword research, user question analysis, topic planning, and content writing, Content Assistant combines these steps into one continuous AI content workflow:

**Keyword Signals → Prompt Match → Content Generation**

The feature helps you:

1. Discover semantic keyword directions with strong content opportunities
2. Understand the real questions users care about across search engines and AI platforms
3. Transform keywords and user questions into actionable content topics
4. Batch-generate content assets for Blogs, LinkedIn, X, and other platforms
5. Build SEO & GEO content strategies more efficiently
6. Reduce manual keyword research, content planning, and multi-platform creation costs

After generation, you can move the content directly into the scheduling workflow and arrange publishing plans inside the Content Schedule panel.

***

## **How to use**

### **Step 1: Keyword Signals**

In this step, you can select keyword directions suitable for content creation.Using semantic analysis, the system recommends **Semantic Clusters** related to your product, industry, or target market, helping you discover potential content opportunities from a keyword perspective.You can use this step to:

1. Identify topics users are actively searching for and paying attention to
2. Access related semantic keyword groups
3. Understand how users phrase questions across search and AI-generated answers
4. Expand SEO & GEO content opportunities
5. Build a clear direction for later Prompt Match and content generation

If the default recommended semantic clusters do not match your needs, you can also click **View More Semantic Groups** to explore additional recommendations from the **Semantic Library**, or add custom semantic groups manually.

The core purpose of this step is:

**To first determine which keyword and semantic topic your content should focus on.**

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=NWVlNDBhYmM2YjNmNDM3ODA2Y2IyZjk3NWQzMDBmMmVfektoc1N1QmhFcGZlY0VvRXJTeXF5NWw4SlExeUxiOHNfVG9rZW46T20yS2JVZVA4b3hFb1F4cU5ld2M3eHBwbnViXzE3Nzk5Mzg1MDU6MTc3OTk0MjEwNV9WNA" alt=""><figcaption></figcaption></figure>

***

### **Step 2: Prompt Match**

Based on the selected keywords and semantic clusters from the previous step, the system further matches potential questions users may ask across search engines, AI answer tools, or content platforms.

These questions represent real user interests, search intent, and decision-making concerns, helping you better understand why users are searching, what problems they want to solve, and what your content should answer.

In this step, you can explore:

1. User questions related to the current semantic cluster
2. Common search intent patterns and question structures
3. A selectable **User Question Pool**
4. Potential pain points, comparison needs, and decision concerns
5. Prompts that can be used for later content generation

You can use the system’s default recommended questions or add additional prompts from the question pool.

In most cases, it is recommended to select 1–3 questions that best match your target users’ needs, allowing the system to generate more focused content topics.

The core purpose of this step is:

**To transform keyword directions into real questions users actually ask, making generated content more aligned with search intent and AI recommendation scenarios.**

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=OTkyZWVkYjBmMDM5ZTEwYzdkNTE2MjA2MWI1NmFhMzNfV3Z0R2ZGaGJWSWt1Q0w2dHQzOHhsdFhmOG5waHEwaTlfVG9rZW46VU9zV2JMMlNKb3FGb2x4YzZFaGNXSEtnbkdiXzE3Nzk5Mzg1MDU6MTc3OTk0MjEwNV9WNA" alt=""><figcaption></figcaption></figure>

***

### **Step 3: Content Generation**

Based on the selected keyword signals and user questions, the system generates a set of related content titles.

You can select one or multiple titles and choose corresponding publishing platforms such as Blogs, LinkedIn, or X to batch-generate platform-adapted content assets.

Generated content can include:

* Anchor Guide
* Scenario
* Comparison
* Deep dive
* Risk Alert
* Other Custom content

\
The core purpose of this step is:&#x20;

**To transform real user questions into publish-ready SEO / GEO content assets.**

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=ZDJkYzAzNzM3MGQzNGU2ZGU1MTFlYmRjZTFkNWJiMDBfZjJtYUxmOGdBWlc3YmFnZmVRaFhFenIwdng2NFlSWG1fVG9rZW46VkEzS2I0WVA1b2hWMG94SmRic2NzMDY3bk5mXzE3Nzk5Mzg1MDU6MTc3OTk0MjEwNV9WNA" alt=""><figcaption></figcaption></figure>

After content generation is completed, the system automatically redirects to the **Content Schedule** panel.&#x20;

You can drag and adjust publishing timelines, then continue arranging multi-platform publishing workflows.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=YzZhM2M3OTA1MWY3MjQ4NTY5OTdiNjNlZjdjMjEwZmFfVnFpdzU3VFlHeGhFTFhkMFNINFNlMUVNTTdBbEViWThfVG9rZW46SXJlQmIyc2Vib0RZWGJ4c1cxOGNOQ3ZpbmZlXzE3Nzk5Mzg1MDU6MTc3OTk0MjEwNV9WNA" alt=""><figcaption></figcaption></figure>

***

## **Result**

After using Content Assistant, you will be able to:

1. Identify real search demand and user questions faster
2. Build a complete SEO / GEO workflow from keywords to content generation
3. Batch-generate content assets for Blogs, LinkedIn, X, and other platforms
4. Improve content relevance to real user search intent
5. Reduce manual keyword research and content planning effort
6. Connect generated content directly into Content Schedule for easier publishing management

The core value of Content Assistant is:**Helping you transform keyword opportunities and user questions into publishable, schedulable, and reusable SEO / GEO content assets.**

***

## **FAQ**

### **Q1: What is Content Assistant?**

Content Assistant is an AI-powered content workflow system inside the SEO & GEO module of Workfx AI.It helps users build an integrated workflow from keyword discovery to user intent analysis and scalable content generation.

***

### **Q2: What makes Content Assistant different from traditional keyword tools?**

Traditional keyword tools usually only provide isolated keyword data.Content Assistant automatically connects semantic keyword analysis, user question insights, and AI content generation into one complete workflow, making content production more strategic and scalable.

***

### **Q3: How are Keyword Signals generated?**

The system analyzes semantic search clusters to identify high-volume search signals related to your product, industry, or niche.Compared to traditional exact-match keyword tools, it helps uncover broader content opportunities.

***

### **Q4: What is the purpose of the User Questions module?**

The User Questions module helps you understand what users are actually searching for.These questions reveal user pain points, decision-making needs, comparison intent, and educational search demand, helping you create more targeted content strategies.

***

### **Q5: What types of content can the system generate?**

The system supports multiple structured content formats, including:

1. Strategic guides
2. Product comparison articles
3. Deep-dive educational content
4. Mistake-avoidance content
5. Scenario-based problem-solving content

***

### **Q6: Can generated content be directly scheduled for publishing?**

Yes.After content generation is completed, the system automatically redirects to the **Content Schedule** panel, where you can arrange publishing plans through drag-and-drop workflows and continue managing multi-platform distribution.


# Brand Hub

### **What This Module Does**

Brand Hub is the brand knowledge center of Workfx AI, designed to centrally manage brand assets, build your Brand DNA, and provide a unified brand context for future content generation, marketing suggestions, and multi-platform operations.

By uploading brand materials, supplementing Q\&A information, and configuring platform-specific account personas, the system can better understand your brand positioning, key selling points, target audience, tone of voice, and marketing direction.

The core value of Brand Hub is:

**Helping Workfx AI understand your brand more deeply, so it can generate more accurate, consistent, and brand-aligned content and growth suggestions.**

***

## **What Modules Are Included in Brand Hub**

Brand Hub mainly consists of three modules:

### **1. Knowledge Q\&A**

Knowledge Q\&A is used to collect, supplement, and calibrate your brand’s foundational information.

You can upload brand-related materials here or supplement and revise brand information through conversations. Based on your provided sources and Q\&A content, the system will build an initial understanding of your brand and use it to generate and update your Brand DNA.

You can add the following brand sources:

* Brand website or webpage links
* Product introductions
* Brand story
* FAQ
* Previous marketing copy
* Social media content
* Internal materials or brand documents
* Visual style references

You can also directly ask questions in Knowledge Q\&A, such as:

* What is our brand positioning?
* What are our core selling points?
* What are the biggest pain points of our target audience?
* What kind of content tone fits our brand?
* What content direction is suitable for a specific platform?<br>

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=YTFhNWMyNjA0N2Q0NmRlODQ4YzBhYTQxYzMyYTE5ZmFfb3lGUU55cVA1RldBSGNOOTUwcXZncmlxbzl1YThCOENfVG9rZW46S0VZdmJGVWtyb0NjalF4dEIxUGNQWW9sbkpmXzE3Nzk5Mzg5NDg6MTc3OTk0MjU0OF9WNA" alt=""><figcaption></figcaption></figure>

***

### **2. Brand DNA**

Brand DNA is your brand’s core profile.

Based on the Q\&A content in Knowledge Q\&A and the uploaded brand materials, the system will generate an editable and continuously updatable brand profile.

Brand DNA typically includes:

* Brand positioning
* Core direction
* Brand slogan
* Key selling points
* Target audience
* User pain points
* Brand characteristics
* Visual style
* Brand tone and communication style
* Brand principles and precautions

All content supports manual editing and adjustments.It is recommended to update your Brand DNA whenever your brand positioning, products, target audience, or marketing direction changes.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=ZTIzYjIwZGQ3ZmY4NzE3MDdhNjExOGNkYWU4N2JjY2Jfb3BlbmRTYktoaGNQOTJNU2xRcDBzenJqcWE0b0NFNm1fVG9rZW46WURtVmJKS3Q1b2t0MU94aDkxQ2NOUUlMbklkXzE3Nzk5MzkxMDc6MTc3OTk0MjcwN19WNA" alt=""><figcaption></figcaption></figure>

***

### **3. Marketing Matrix**

Marketing Matrix is used to configure marketing expression styles for different platforms and accounts.

It is not used to create real social media accounts. Instead, it helps you establish account personas, tones of voice, and content asset requirements for different platforms, allowing the same brand to maintain consistent core messaging while adapting to each platform’s unique content environment.

Supported platforms typically include:

* LinkedIn
* Reddit
* X
* Instagram
* Facebook

Each account can configure:

* **Persona:** What role this account represents, such as founder, industry expert, brand account, community member, etc.
* **Look & Voice:** The account’s visual style and communication tone, such as professional, data-driven, authentic, opinionated, casual, etc.
* **Asset Needs:** The types of content assets commonly used by the account, such as short posts, graphics, data visuals, case studies, product screenshots, community replies, etc.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=ZjdjNjlkOWQ3MjgxNDE2MDI2YTFiZWJkZTY1ZDdlM2VfY2xSVTkwaEozcTFOTm00MUJzYkpnTHRreno4R0N0WDZfVG9rZW46WHZpeGJxNldBb1R0VUN4RDcxcWNaMGhIbldnXzE3Nzk5Mzg5NDg6MTc3OTk0MjU0OF9WNA" alt=""><figcaption></figcaption></figure>

***

## **How to Use Brand Hub**

### **Step 1: Enter Knowledge Q\&A and Add Brand Sources**

After entering Brand Hub, you will first arrive at the Knowledge Q\&A page.

Click **Add Source** to upload or add brand-related materials to build your brand knowledge base.

You can add:

* Files, such as PDF, Word, TXT, images, etc.
* Webpage links or official website pages
* Text content, such as brand introductions, product descriptions, FAQs, marketing copy, etc.

After adding sources, the system will extract and summarize brand information based on the materials you provide.

You can review the generated brand knowledge summary and confirm whether the content is accurate.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=ZGRhZWZhNjA1N2FmNzIwOTQ3ZTNkZjU3MWY5MzBjODhfejduTmZKOVMzTUtXOHdBd2hXSklwZ2RFbm5tQVN6ZVlfVG9rZW46Q05MRWJybk40b2FyUUV4TFA0RWN4SHVNbkNkXzE3Nzk5Mzg5NDg6MTc3OTk0MjU0OF9WNA" alt=""><figcaption></figcaption></figure>

If the content is accurate, you can save it directly.

If the content is inaccurate, you can continue supplementing, correcting, or refining the information through the chat box below the page.

***

### **Step 2: Review and Save Brand DNA**

After completing brand knowledge collection, the system will generate Brand DNA based on your Q\&A content and uploaded materials.

You can click **View Full Report** to review a more detailed brand analysis.

If the content is accurate, click **Save** to save this Brand DNA as your brand context.

After saving, the system will reference this information during future content generation, marketing suggestions, and platform content configurations.

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=YmY5ZmE1NDE1ODlhN2MxYTYzNmQyZmY0ZDRiYWJiZWRfTU52bEFwZ2lmT3JwUGRSMkQ2WXhTN0ZjZkFKMXBNR2ZfVG9rZW46UWx3TGJXWDByb0VSR0R4T0FrR2NlYmppbkxkXzE3Nzk5Mzg5NDg6MTc3OTk0MjU0OF9WNA" alt=""><figcaption></figcaption></figure>

If the content is inaccurate, it is recommended to return to Knowledge Q\&A to supplement or revise brand information before confirming Brand DNA again.

***

### **Step 3: Edit and Maintain Brand DNA**

After saving, you can enter the Brand DNA page to continue reviewing, editing, and maintaining your brand’s core information.

You can continuously adjust the following based on your brand’s development stage:

* Brand positioning
* Target audience
* Core selling points
* Brand tone
* Product or service information
* Brand principles and precautions

The more accurately Brand DNA is configured, the closer future blogs, social media content, product copy, and marketing suggestions will align with your real brand.

***

### **Step 4: Configure Marketing Matrix**

After completing Brand DNA, you can enter the Marketing Matrix page to configure exclusive marketing expression styles for different platforms and accounts.

Click **Add Channel** and select the platform you want to configure.

Based on your Brand DNA, the system will generate initial content configuration suggestions for the platform, including:

* Account persona
* Communication tone
* Visual style
* Content asset requirements

You can manually edit, regenerate, or refresh individual sections.

Before confirming the configuration, you can preview generated style samples, including sample titles, example content, and content style demonstrations.

Once confirmed, click **Confirm** to complete the platform account configuration.![](https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=MWFmM2M5YzBjNzk2MTE5NjVhNzdmNzBhM2IwNzM0ZDNfVTdEU0xHWlZZU0h5YW5MbnkwNXlmY3g3dnFFUzRwR3RfVG9rZW46VDNrVGJ4OFdlb0FOOWx4bUxRNWNuVVM4blVnXzE3Nzk5Mzg5NDg6MTc3OTk0MjU0OF9WNA)<br>

***

## **Result**

After completing Brand Hub setup, you will gain:

* A reusable and continuously growing brand knowledge base
* An editable and updatable Brand DNA profile
* More unified brand positioning, selling points, and communication style
* Marketing Matrix configurations for different platforms
* Clearer account personas and content directions across platforms
* More stable and brand-aligned AI-generated content results
* More efficient workflows for blogs, social media content, product copy, and marketing material creation

***

## **Recommended Usage Scenarios**

It is recommended to update Brand Hub under the following situations:

* When using Workfx AI for the first time
* When your website or product information changes
* When launching new products or services
* When adjusting your target market or audience
* When changing your content style or marketing direction
* Before generating multi-platform content

Keeping Brand Hub information accurate allows Workfx AI to continuously use the latest brand context for future content generation and growth suggestions.

***

## **FAQ**

### **What file formats are supported for uploads?**

Currently supported formats include:

* PDF
* Images
* Word
* TXT
* Audio
* Video
* Webpage links
* Plain text content

***

### **How many sources can be uploaded?**

Currently, up to 100 sources are supported.

***

### **Can Brand DNA be modified?**

Yes.

All Brand DNA content generated by the system supports manual editing and adjustment.

***

### **What happens after saving Brand DNA?**

After saving, the system will remember your brand information and automatically apply it during future content generation and marketing processes.

***

### **Can accounts in the Marketing Matrix be customized?**

Yes.Including:

* Persona
* Tone of voice
* Visual style
* Asset requirements

All can be manually edited or regenerated.

***

### **Why is a Marketing Matrix necessary?**

Different platforms have different user behaviors and content ecosystems.

The Marketing Matrix helps you build differentiated content strategies for different platforms while maintaining overall brand consistency.


# Introduction

WorkfxAI is an efficient and intelligent platform that empowers users to easily build intelligent agents with real industry expertise. By transforming your professional knowledge into structured domain knowledge, WorkfxAI enables you to create agents that can understand, reason, and act with the depth of an industry expert. Whether you are an enterprise, an industry specialist, or a team looking to enhance business automation and intelligence, WorkfxAI helps you unlock the full potential of your knowledge through smart agent creation.

WorkfxAI is suitable for:

* Enterprises and individuals who need to digitize and structure their professional knowledge
* Teams aiming to automate business processes with intelligent agents
* Organizations requiring multi-agent collaboration for complex tasks
* Experts focused on knowledge accumulation and reuse within their industry

## Quick Start Tutorial

Get started quickly with WorkfxAI by watching these comprehensive tutorial videos:

### Create an Q\&A AI Agent

{% embed url="<https://www.youtube.com/watch?v=9DbeGilP0oQ>" %}
Complete introduction to WorkfxAI platform and how to get started
{% endembed %}

### Smart Flow-Based Agent Tutorial

{% embed url="<https://www.youtube.com/watch?v=HmMIAO0LvlY>" %}
Smart Flow-Based AI Agent
{% endembed %}

## Key Platform Components

After getting familiar with the basics through our tutorial videos, you'll want to explore the core components that make WorkfxAI powerful. The platform is built around two main pillars: the **Knowledge Center** for organizing and structuring your domain expertise, and the **Workforce Factory** for creating and managing intelligent agents.

The **Knowledge Center** helps you transform unstructured information into actionable knowledge that your agents can leverage, while the **Workforce Factory** provides the tools and frameworks needed to build sophisticated agents that can work individually or collaborate in multi-agent scenarios.

## Explore WorkfxAI Features

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th data-type="content-ref"></th><th data-type="content-ref"></th><th data-type="content-ref"></th></tr></thead><tbody><tr><td>Knowledge Center</td><td><a href="/pages/ltMefy9UlGChIw1y5QoR">/pages/ltMefy9UlGChIw1y5QoR</a></td><td><a href="/pages/pSLD6GxnVyomuJkBP2iA">/pages/pSLD6GxnVyomuJkBP2iA</a></td><td></td></tr><tr><td>Workforce Factory</td><td><a href="/pages/zM19vKqmmqmjxxJ8Jra6">/pages/zM19vKqmmqmjxxJ8Jra6</a></td><td><a href="/pages/BgySw9MJqEoNFOxER3YB">/pages/BgySw9MJqEoNFOxER3YB</a></td><td><a href="/pages/mv3uvoaWngcKIfkwPsNs">/pages/mv3uvoaWngcKIfkwPsNs</a></td></tr></tbody></table>


# Featured Agents User Manual

<figure><img src="/files/tJh9SVt4SHkESAf3lacf" alt=""><figcaption></figcaption></figure>


# GEO & SEO Agent Matrix (Released Jan, 2026)

#### 1. **The Workfx AI GEO & SEO Agent Matrix is built for:**

* Businesses or individuals with no SEO or technical background
* Teams that no longer want to rely on external agencies for SEO or content
* Companies that want to optimize for **both traditional search (SEO) and AI search (GEO)** at the same time
* Anyone who wants to turn complex organic growth processes into clear, executable steps

You **do not** need a technical background, a development team, or dedicated SEO specialists.

***

#### **2. Overview of the End-to-End Workflow**

* Enter your website URL → Auto diagnostics on SEO & GEO top level metrics
* A comprehensive tech audit that outlines items need to be addressed → sequential order from most to least prioritized
* Content generation → auto publishing in one click

***

#### **3. Step-by-Step Guide**

**Step 1: Enter Your Website URL (make sure it starts with: https\://)**

<figure><img src="/files/sPm4A7zBBTGHVgKr1JA0" alt=""><figcaption></figcaption></figure>

***

**Step 2：Baseline Assessment（overall indexing against industry / competitor）**

<figure><img src="/files/tI0tWOcIKPdCi35Uwjot" alt=""><figcaption></figcaption></figure>

Key metrics that will be revealed here includes:&#x20;

* AI Citation Rate
* Content Authority
* Structured Data
* Content Richness
* Semantic Optimization

You will also get a wholistic picture of where your business stacks up against competitions and average industry benchmarks.<br>

**Step 3: In-Depth Technical Audit (with Actionable Implementation Guide)**

<figure><img src="/files/fcmiClL0d3sI3nQHy1th" alt=""><figcaption></figcaption></figure>

After completing the baseline assessment, you can move on to an in-depth tech audit. The agent will systematically identify:

* Technical issues currently affecting your website (crawlability, citability, page structure, etc)
* Key factors affecting SEO, GEO, and user experience
* Areas with optimization potential that haven’t been identified

<figure><img src="/files/VUo7YTV3BlYFlJSlav4r" alt=""><figcaption></figcaption></figure>

For each issue identified, the agent provides:

* A clear priority list of tasks to follow, allowing easy execution on your end
* Clear explanations for both **non-technical** and **technical** users

Click **“Fix Now”** to receive detailed instructions.You don’t need to understand complex tech jargons — follow the instruction and execute them one by one.<br>

**Step 4: Enter the Content Strategy Agent (SEO + GEO in Sync)**

<figure><img src="/files/0Tpd1T35VHnOFDevkS3g" alt=""><figcaption></figcaption></figure>

After completing the technical audit, move on to the Content Strategy Agent:

* Our agent matrix will generate **TODAY'S STRATEGIC PICKS** based on your industry
* Topic are generated based on discussion volume, search trends, cost-efficiency of your products and AI comprehension logic. Based on competitive analysis within your industry, it identifies long-tail keywords for search engines and relevant queries for AI engines (such as ChatGPT, Gemini, etc.) that align with your brand
* Haven't seen anything you like? Hit the **Refresh Topic** button for more ideas
* You can also enter your own topics directly

**Step 5: Select a Topic and Generate Professional Content in One Click**

<figure><img src="/files/FbEPTkk8I1WgJNzy5ubJ" alt=""><figcaption></figcaption></figure>

Pick your desired topic, then you can:

* Choose which platform to publish (such as WordPress / Shopify)
* Select the appropriate language

The agent will automatically generate a piece of content that is:

* Well-structured
* Backed by real sources and data
* Designed to build trust with AI systems
* Customised to corresponding distribution channel across content length, tone, structure & companion images (i.e, a Linkedin post would look very different from an X post, even on the same topic)

**Step 6: Publish to Your Website with One Click**

Once your content is generated, you can preview in the AI chat interface and instruct the agent what to do next.

<figure><img src="/files/rlMBQUCCduvLuQuDZNV2" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/Tv5ZaMoNGIqYzhbEyr4r" alt=""><figcaption></figcaption></figure>

* Copy or download your for internal use or distribute across other channels
* Or connect your website and publish it

<figure><img src="/files/jIm4XZxy4VGjy7bHDqCU" alt=""><figcaption></figcaption></figure>

*(Platforms we support: Shopify, WordPress, LinkedIn, Reddit)*

Before publishing, you are provided with a **content quality score** and a brief analysis that explains how it is scored in terms of **visibility, structure, professionalism, and technical compliance**.

Once reviewed / confirmed, hit **Publish** — no copying or formatting required. From being generated to published, the process is fully automated.


# GEO & SEO Evaluate Agent

Step by step guidance on how to interact our agents

1. **Configure your Chat Settings.**

   1. &#x20; Chat Settings define top-level instruction and guardrails for your agent. Please. Provide following details to ground the agent in your brand's information:
   2. **Brand Name**
   3. **Website URL** (starts with https\://)
   4. **Relevant information** (any additional context to feed the agent)

   Click **Confirm** to save them so you don't need to re-enter for ongoing dialogues under the same Task.

<figure><img src="/files/VsLgQJupSsuIRBoCUx28" alt=""><figcaption></figcaption></figure>

2. **Start a New Task.**

Each task in the left panel (can be collapsed) represents a separate dialogue with the agent, with independent information and chat settings. If you prefer the agent to memorize your brand and URL, we'd recommend you stick with the same task.

<figure><img src="/files/ZStCpEjfMvx77TwdkffC" alt=""><figcaption></figcaption></figure>

3. **Create Top Level Evaluation Report and Insights.**

Conduct a speedy evaluation on your website with an exportable report.

{% embed url="<https://youtu.be/3ZY5qxC37Mc>" %}

<br>


# GEO & SEO Management Agent

Step by step guidance on how to interact our agents

1. **Configure your Chat Settings.**

   1. &#x20; Chat Settings define top-level instruction and guardrails for your agent. Please. Provide following details to ground the agent in your brand's information:
   2. **Brand Name**
   3. **Website URL** (starts with https\://)
   4. **Relevant information** (any additional context to feed the agent)

   Click **Confirm** to save them so you don't need to re-enter for ongoing dialogues under the same Task.

<figure><img src="/files/e3Vu4a4XSv2YWYZrtorZ" alt=""><figcaption></figcaption></figure>

2. **Start a New Task.**

Each task in the left panel (can be collapsed) represents a separate dialogue with the agent, with independent information and chat settings. If you prefer the agent to memorize your brand and URL, we'd recommend you stick with the same task.

<figure><img src="/files/PsoMwH4YvYWPCg94JYUZ" alt=""><figcaption></figcaption></figure>

3. **Create Site Evaluation Report and Insights.**

Conduct a speedy evaluation on your website with an exportable report, as well as suggested next steps for you to choose.

{% embed url="<https://youtu.be/_zNqbPrUkOc>" %}

\
Suggested Next Steps:

<figure><img src="/files/Xud697l62TiSwTUHw3oY" alt=""><figcaption></figcaption></figure>

4. **Produce a 5-Week Step by Step Action Plan:**

<figure><img src="/files/iv9Rx76t1tXxJngWyMvQ" alt=""><figcaption></figcaption></figure>

{% embed url="<https://youtu.be/ur76R-6QSTY>" %}

5. **Follow the plan and start with Week 1 Suggested Action:** Foundational Analysis & Data Collection (see below) - Run GEO Data Collection & Analysis or SEO Data Collection & Analysis:'

<figure><img src="/files/2G5GXPF6tNMgdd80ZAr5" alt=""><figcaption></figcaption></figure>

{% embed url="<https://youtu.be/7GJx3S7ay9o>" %}

6. Move to GEO & SEO Keywords-Topics Strategist Agent for following next steps.


# GEO & SEO Keywords-Topics Strategist Agent

Step by step guidance on how to interact our agents

1. Click Chat Settings to make sure it has captured the right information of your brand, then hit Confirm to collapse the setting window.

![](https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=YWFiY2YwMDJhZTIwNzMzZjQyYjYwNjA0MGU0ODRlNTNfclROUUhiQ204MDRmS051S1RUS0gwOFRZZWsxOFhEdmxfVG9rZW46TUQzdmJ4cUdYb3hZZWp4amJzS2M3cTBxblJkXzE3NjU2MjA0MTY6MTc2NTYyNDAxNl9WNA)![](https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=NzRmMGMwYTIzMDQwNWJiMjA5MTQ3ZDdlYzBjNGRlMThfb3FuWWRJZk1LT25DejZyc0xqNXBzTU01UUx1TWx3VkNfVG9rZW46TVU0RWJybHNnb2U4OWR4V2hCbGNjZ3ZVbnZiXzE3NjU2MjA0MTY6MTc2NTYyNDAxNl9WNA)<br>

2. Click "Start keywords selection" to auto-populate a prompt; or enter your own instruction on what you'd like the agent to create, results will be produced in a few seconds. Keyword agent will produce a comprehensive report including: \
   \- Executive Summary; \
   \- Category 1: Own Keywords (Blue Ocean Opportunities) \
   \- Category 2: Compete Keywords (Optimization Opportunities) \
   \- Category 3: Experimental Keywords (High-Volume Testing) \
   \- Budget Recommendations with monthly budget allocation suggestion \
   \- Priority Action Items for your next steps such as: create landinge page / implement analytics / develop a content creation plan.\\

Take note or copy these keywords and move to Content Generator Agent to finish creating content that is optimised towards GEO & SEO.

{% embed url="<https://youtu.be/c1knmtKq_cw>" %}

<br>

1. Click Chat Settings to make sure it has captured the right information of your brand, then hit Confirm to collapse the setting window.

![](https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=MjUwZDY1MWU4YzMwMGUxMzVmZDE0NGY4ODk3MTQ3Y2VfSHJiZk5aSXRiVUtXRUsxQWhNbXZjRjNoeEdrb3pOMlNfVG9rZW46VUpTVGJoZmt4b0RGbGN4SEtWQmNtaUFrbjZiXzE3NjU2MTkzNTE6MTc2NTYyMjk1MV9WNA)![](https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=YTZhZDUxNTcwOTQ5NWEyNDY5NDVlYmRjMjkwZDdiNDBfRXBLTWtRU3VuS3ROVjh0SnpjdHFIV0pIQ21KUVFiYmJfVG9rZW46VUU0OGJrMUdKb3ZOY1l4eDdkcWNwVHB5blVoXzE3NjU2MTkzNTE6MTc2NTYyMjk1MV9WNA)<br>

2. Set up your external content distribution channels accounts next to Chat Settings. This will allow you to auto publish any content produced by the agent.

{% embed url="<https://youtu.be/GBjFw6akLlk>" %}

3. Based on result from GEO & SEO Keywords-Topics Startegist Agent, enter your instruction on what type of content you'd like the agent to create, where the content will be distributed. Once content is reviewed and confirmed, instruct the agent to publish it to your linked account(s).&#x20;

{% embed url="<https://youtu.be/QTa4emnhvSA>" %}


# Content Generator Agent

Step by step guidance on how to interact our agents

1. Click Chat Settings to make sure it has captured the right information of your brand, then hit Confirm to collapse the setting window.

![](https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=MzExNTAwYWNjOThkNWQ0NjRiMDcyY2Q4MTkwZDUzZjNfa09PWE5ZOWxwOXE4Z1NaYkp0T3FacnhVTEdGOXB2WmVfVG9rZW46VUpTVGJoZmt4b0RGbGN4SEtWQmNtaUFrbjZiXzE3NjU2MjAzMDA6MTc2NTYyMzkwMF9WNA)![](https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=NDU4ZTAyZTgyZWYwMmYxM2I0NjgyYTE2NWYxN2Y4OTVfNjRvdjNvVVNnSHFnR0NXaWxITEV2QTB6dmVPMWR4eWZfVG9rZW46VUU0OGJrMUdKb3ZOY1l4eDdkcWNwVHB5blVoXzE3NjU2MjAzMDA6MTc2NTYyMzkwMF9WNA)<br>

2. Set up your external content distribution channels accounts next to Chat Settings. This will allow you to auto publish any content produced by the agent.&#x20;

{% embed url="<https://youtu.be/GBjFw6akLlk>" %}

3. Based on result from GEO & SEO Keywords-Topics Startegist Agent, enter your instruction on what type of content you'd like the agent to create, where the content will be distributed. Once content is reviewed and confirmed, instruct the agent to publish it to your linked account(s).&#x20;

{% embed url="<https://youtu.be/QTa4emnhvSA>" %}


# TikTok Shop Influencer Scout Agent

Step by step guidance on how to interact our agents

Our TikTok Shop Influencer Scout Agent has extensive and exclusive database on TikTok Shop Influencers who have demonstrated a successful track record on bringing revenue for their own TikTok shop or brands.Please note influencers who do not own a TikTok shop in **US, UK or South East Asia** might not be in our database.Through this agent, you can:

* Look up creators that you'd like to understand about their past sales performance
* Find out how creators work with brands - minimum production fee involved or commissions only
* Creators' video GPM (Gross Merchandise Value Per Mille: total sales revenue generated for every **1,000 views** their video receives)
* Draft and auto-send outreach email tailored to each creator

{% embed url="<https://youtu.be/52gIodcslAs>" %}


# 标杆 AI 智能体用户指南


# GEO & SEO 综合智能体(最新）

最新上线的一站式SEO-GEO综合智能体: https\://platform.workfx.ai/seo-geo-agent

### 一、这个产品适合谁？

Workfx AI 适合以下用户：

* 没有 SEO / 技术背景的企业或个人
* 不想再依赖外包团队做 SEO / 内容
* 希望同时做好 **搜索（SEO）和 AI 搜索（GEO）**
* 想把复杂的增长流程，简化成可执行步骤的人

你 **不需要**技术背景、开发团队、专门的 SEO 人员

***

### 二、整体使用流程概览

1. 贴入网站 → AI自动诊断（SEO & GEO 基础）
2. 全面检测出技术问题 → 按优先级逐步优化
3. 生成内容 → 一键发布到你的网站

***

### 三、详细操作步骤

#### Step 1：贴入你的网站

<figure><img src="/files/IFZJkJCnPWqKmnuIcqza" alt=""><figcaption></figcaption></figure>

进入 Workfx AI 后，只需：将你的网站 URL 粘贴到系统中无需任何配置，一键点击Agent 就会自动开始分析。

***

#### Step 2：基础评估（SEO & GEO 整体水平）

<figure><img src="/files/rTWmyJRZq1ctlqg7YQE4" alt=""><figcaption></figcaption></figure>

Agent 会首先对你的网站进行一次**标准化评估**，帮助你快速了解当前所处位置，包括：

* 网站**GEO 评分**（你在 AI 搜索中的基础表现）
* 与行业竞品的对比差距（以对比表格形式展示）

这一阶段的目标是：**让你清楚知道自己在行业中的相对水平，帮助你建立整体的认知。**

***

#### Step 3：深入评测（可执行的技术诊断）

<figure><img src="/files/pMZaK8ZXuydTGeXkznwn" alt=""><figcaption></figcaption></figure>

在完成整体评估后，你可以进入**深入评测环节，**&#x41;gent 会系统性识别：

* 当前网站存在的技术性问题
* 影响 SEO、GEO 和用户体验的关键环节
* 仍有优化空间但尚未被充分利用的部分

<figure><img src="/files/kPGVSJadqYnLs0Bkz5n2" alt=""><figcaption></figcaption></figure>

针对每一个问题，Agent 会提供：

* **明确的修复优先级**，方便你逐项决策和执行
* 从非技术角度 & 技术角度出发的清晰的问题说明，方便不同使用人群理解问题。
* 点击【立即修复】即可获取详细的修复方案，

你不需要理解复杂术语， 只需要判断：**先改哪一项，后改哪一项。**

***

#### Step 4：进入内容策略 Agent（SEO + GEO 协同）

<figure><img src="/files/DItSLO8bRuipghZ3a3aL" alt=""><figcaption></figcaption></figure>

完成技术评估后，进入内容策略 Agent：

* 系统会基于你的行业生成 **今日推荐话题**
* 选题基于讨论度、搜索趋势、性价比、AI 理解逻辑筛选等因素，根据品牌的相关行业竞争分析，找到符合品牌的搜索引擎长尾keywords和AI引擎（ChatGPT/Gemini等）的query
* 如不满意，可 **一键刷新**
* 也可直接输入你自己的话题

***

#### Step 5：选中话题 一键生成专业内容

<figure><img src="/files/2qLPxZQXSsuOY0QAAwep" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/PwoTfwxB7cZgRfeN0EBl" alt=""><figcaption></figcaption></figure>

选中话题后：

* 选择发布平台（如 WordPress / Shopify）
* 选择内容语言
* Agent 会自动生成一篇：
  * 结构完整
  * 包含真实引用和数据
  * 有助于建立 AI 信任度的专业内容

***

#### Step 6：一键发布到你的网站

文章生成后，你可以在 **AI 对话框中直接预览内容**，并自由选择下一步操作：

<figure><img src="/files/4jdT0c5UYFPIjz4DbdQZ" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/77dp1ISMYJRnCdINef2s" alt=""><figcaption></figcaption></figure>

* 复制或下载文章，用于内部或其他渠道
* 或 **连接你的网站后一键发布**

<figure><img src="/files/GzBjE3aSk3C8GeypSB7b" alt=""><figcaption></figcaption></figure>

（支持：Shopify、WordPress、LinkedIn、Reddit）在发布前，系统会为文章提供一份 **内容质量评分与简要解析**，帮助你快速了解这篇内容在 **可见性、结构、专业性和技术规范** 等方面的优化表现。\
确认后即可一键发布， **无需复制、排版或手动检查格式，从生成到上线，全流程自动完成。**

***

### FAQ｜常见问题

#### Q1：我完全不懂 SEO 或技术，也能用吗？

可以。Workfx AI 的设计前提，就是**假设用户没有任何 SEO 或技术背景**。所有诊断结果和解决方案，都会以非技术语言呈现。Agent 会直接告诉你：

* 现在网站主要问题是什么
* 下一步该先做哪一件事
* 为什么这一步最重要

你只需要按步骤做判断， 不需要理解复杂概念，也不需要自己想解决方案。

***

#### Q2：用了 Workfx AI，我还需要再找 SEO 或内容团队吗？

对大多数中小团队来说，不是必须。Workfx AI 把原本需要不同角色完成的事情，整合成一个清晰、可执行的流程，包括评估、诊断、内容和发布。你不需要再分别对接 SEO、技术和内容团队，也不需要反复沟通和管理外包进度。

***

#### Q3：生成的内容能直接用吗？会不会很「AI 味」？

这是我们非常在意的一点内容并不是随便生成的：

* 选题经过筛选，而不是随机拼接
* 内容中包含真实引用和数据
* 结构是为搜索和 AI 理解设计的，而不是为了“看起来像文章”

目标不是“多写内容”，而是**帮助你在 AI 搜索环境中建立专业性和可信度**。

***

#### Q4：我一定要用系统推荐的话题吗？

不需要。你可以直接输入自己的话题， 由 Agent 帮你完成内容生成。系统推荐的选题只是为了帮你节省决策时间， **而不是限制你怎么做内容。**

***

#### Q5：内容一定要一键发布吗？我能自己控制吗？

完全由你决定。你可以：

* 只生成内容，不发布
* 下载或复制内容，自行发布到其他渠道
* 或在确认后，再选择一键发布到已连接的网站

Workfx AI 不会强制任何发布行为。

***

#### Q6：SEO + GEO 听起来很复杂，我需要额外学习吗？

不需要。对用户来说，你不需要分别“学 SEO”或“学 GEO”。 这些复杂度已经被 Agent 吸收掉了。Workfx AI 会在同一个流程中完成评估、判断和执行， 你只需要按清晰的步骤做选择。对你来说，事情并没有变复杂， 只是交给了一个更懂搜索和 AI 的 Agent 来处理。


# GEO & SEO 快速诊断智能体

Step by step guidance on how to interact our agents

1. #### **输入您的聊天设置（Chat Settings）**

Chat Settings 用于为智能助手设定顶层指令与工作边界。请提供以下信息，以便它准确理解并基于您品牌进行输出：

* 品牌名称
* 网站 URL（必须以 https\:// 开头）
* 相关信息（任何可帮助智能助手理解您业务的背景信息）

点击 **Confirm（确认）** 保存设置，这样在同一个 Task 下的后续对话中无需重复输入。

<figure><img src="/files/otNMopsxw5TGttiNwi7G" alt=""><figcaption></figcaption></figure>

2. #### **开启一个新的 Task**

左侧栏中的每一个 Task（可收起）都代表一个独立的对话空间，彼此数据互不干扰；每个 Task 会保存自己的 Chat Settings 及输入内容。若您希望智能助手记住您的品牌名称及 URL，建议在同一个 Task 内持续使用。

<figure><img src="/files/HANuWA3PAEqBlC1vMulE" alt=""><figcaption></figcaption></figure>

3. #### **创建网站评估报告与洞察（Site Evaluation Report & Insights）**

快速对您的网站进行诊断，生成可导出的报告。

{% embed url="<https://youtu.be/3ZY5qxC37Mc>" %}


# GEO & SEO 全功能智能体

Step by step guidance on how to interact our agents

1. **输入您的聊天设置（Chat Settings）**

   Chat Settings 用于为智能助体设定顶层指令与工作边界。请提供以下信息，以便它准确理解并基于您品牌进行输出：

   * 品牌名称
   * 网站 URL（必须以 https\:// 开头）
   * 相关信息（任何可帮助智能体理解您业务的背景信息）

   点击 **Confirm（确认）** 保存设置，这样在同一个 Task 下的后续对话中无需重复输入。

<figure><img src="/files/e3Vu4a4XSv2YWYZrtorZ" alt=""><figcaption></figcaption></figure>

2. **开启一个新的 Task**

   左侧栏中的每一个 Task（可收起）都代表一个独立的对话空间，彼此数据互不干扰；每个 Task 会保存自己的 Chat Settings 及输入内容。若您希望智能体记住您的品牌名称及 URL，建议在同一个 Task 内持续使用。

<figure><img src="/files/PsoMwH4YvYWPCg94JYUZ" alt=""><figcaption></figcaption></figure>

3. **创建网站评估报告与洞察（Site Evaluation Report & Insights）**

   快速对您的网站进行诊断，生成可导出的报告，并提供后续建议清单供您选择执行。

{% embed url="<https://youtu.be/_zNqbPrUkOc>" %}

推荐后续步骤示例：

<figure><img src="/files/Xud697l62TiSwTUHw3oY" alt=""><figcaption></figcaption></figure>

4. 推荐后续步骤示例：

<figure><img src="/files/iv9Rx76t1tXxJngWyMvQ" alt=""><figcaption></figcaption></figure>

{% embed url="<https://youtu.be/ur76R-6QSTY>" %}

5. **按计划执行，从第 1 周行动开始：基础分析与数据收集**

   （见下方）执行 GEO Data Collection & Analysis 或 SEO Data Collection & Analysis：

<figure><img src="/files/2G5GXPF6tNMgdd80ZAr5" alt=""><figcaption></figcaption></figure>

{% embed url="<https://youtu.be/7GJx3S7ay9o>" %}

6. **继续转到 GEO & SEO Keywords-Topics Strategist Agent 关键词策划智能体生成关键词和下一步。**


# GEO & SEO 关键词策划智能体

Step by step guidance on how to interact our agents

1. **点击 Chat Settings，确认已正确填写并捕获您的品牌相关信息，然后点击 Confirm 以收起设置窗口。**

![](https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=YWFiY2YwMDJhZTIwNzMzZjQyYjYwNjA0MGU0ODRlNTNfclROUUhiQ204MDRmS051S1RUS0gwOFRZZWsxOFhEdmxfVG9rZW46TUQzdmJ4cUdYb3hZZWp4amJzS2M3cTBxblJkXzE3NjU2MjA0MTY6MTc2NTYyNDAxNl9WNA)![](https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=NzRmMGMwYTIzMDQwNWJiMjA5MTQ3ZDdlYzBjNGRlMThfb3FuWWRJZk1LT25DejZyc0xqNXBzTU01UUx1TWx3VkNfVG9rZW46TVU0RWJybHNnb2U4OWR4V2hCbGNjZ3ZVbnZiXzE3NjU2MjA0MTY6MTc2NTYyNDAxNl9WNA)<br>

2. **点击「Start keywords selection」以自动生成提示词；或自行输入您希望执行的指令，系统将在几秒内生成结果。智能体将输出一份完整报告，内容包括：**
   1. 执行摘要（Executive Summary）
   2. 分类一：自有关键词（蓝海机会）
   3. 分类二：竞争关键词（优化机会）
   4. 分类三：实验型关键词（高搜索量测试）
   5. 预算建议（包含每月预算分配建议）
   6. 后续优先行动项，例如：创建落地页 / 实施数据分析 / 制定内容生产计划

请记录或复制这些关键词，并前往 **Content Generator Agent 内容生成智能体**，完成针对 **GEO & SEO 优化**的内容创建。

{% embed url="<https://youtu.be/c1knmtKq_cw>" %}


# 内容生成智能体

Step by step guidance on how to interact our agents

1\. 点击 Chat Settings，确认系统已正确获取您的品牌信息，然后点击 Confirm 收起设置窗口。

![](https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=MjUwZDY1MWU4YzMwMGUxMzVmZDE0NGY4ODk3MTQ3Y2VfSHJiZk5aSXRiVUtXRUsxQWhNbXZjRjNoeEdrb3pOMlNfVG9rZW46VUpTVGJoZmt4b0RGbGN4SEtWQmNtaUFrbjZiXzE3NjU2MTkzNTE6MTc2NTYyMjk1MV9WNA)![](https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=YTZhZDUxNTcwOTQ5NWEyNDY5NDVlYmRjMjkwZDdiNDBfRXBLTWtRU3VuS3ROVjh0SnpjdHFIV0pIQ21KUVFiYmJfVG9rZW46VUU0OGJrMUdKb3ZOY1l4eDdkcWNwVHB5blVoXzE3NjU2MTkzNTE6MTc2NTYyMjk1MV9WNA)<br>

2. 在 **Chat Settings** 旁配置您的外部内容分发渠道账号。完成设置后，即可将智能体生成的内容自动发布到对应的平台。

{% embed url="<https://youtu.be/GBjFw6akLlk>" %}

3. 基于 **GEO & SEO Keywords-Topics Strategist Agent** 的分析结果，输入您希望智能体生成的内容类型，以及内容将发布到的渠道。完成内容审核并确认无误后，指示智能体将内容发布至您已绑定的账号。

{% embed url="<https://youtu.be/QTa4emnhvSA>" %}


# TikTok Shop达人搜索智能体

Step by step guidance on how to interact our agents

我们的 **TikTok Shop 网红搜索（Influencer Scout）智能体** 拥有一个覆盖广泛且具备独家优势的 TikTok Shop 网红数据库，这些创作者均已在其自营 TikTok Shop 或合作品牌中证明了稳定、可复制的带货变现能力。

请注意：我们的数据库目前只包含了**美国、英国或东南亚地区运营 TikTok Shop 的创作者。**

达人的功能包括：

* 查询并分析指定创作者过往的销售表现
* 了解创作者与品牌的合作方式（是否收取最低制作费，或仅采用佣金分成）
* 查看创作者视频的 **GPM（Gross Merchandise Value Per Mille）**，即每 1,000 次视频观看所产生的总销售额
* 自动生成并发送定制化的商务联系邮件

{% embed url="<https://youtu.be/52gIodcslAs>" %}


# Key Concepts

<figure><img src="/files/edQjpzlbasVUrdyapRNm" alt="" width="413"><figcaption></figcaption></figure>

* **Knowledge Center (The External Memory)**: This is the source of factual, up-to-date, or specialized information (e.g., company PDFs, technical manuals, the live internet).
* **Tools (The Hands and Senses)**: These are still the functions an agent can use. In an LLM-powered system, this becomes more concrete:
  * Retrieval System: A tool to search the knowledge base.
  * Code Interpreter: A tool to run Python code for calculations or data analysis.
  * Web Browser: A tool to access live information from the internet.
  * APIs: Tools to interact with other software (e.g., booking a flight, sending an email).
* **Large Language Model (LLM) (The Brain)**: This is where the core intelligence resides. The LLM is the central component that enables the agent's advanced capabilities. It serves multiple critical functions:
  * Understanding and Reasoning: The LLM processes the user's request, understands the intent, and reasons about how to achieve the goal.
  * Planning and Tool Selection: Based on its understanding, the LLM creates a step-by-step plan and decides which tool to use at each step. For example, it might reason, "The user is asking about today's weather. I need to use the web browser tool to search for it."
  * Synthesizing Information: After a tool retrieves information from a knowledge base (or the web), the LLM takes this raw data and synthesizes it into a coherent, human-readable answer.
* **Agent (The Unified Self)**: The Agent is the complete entity that is powered by the LLM. It is the LLM combined with its set of tools and its access to the knowledge base. The agent is what you interact with; it has a goal, it can plan, and it can act. Without the LLM, the agent would be a simple, rule-based system. With the LLM, it becomes an intelligent, reasoning entity.
* **Multi-Agent System (The Collaborative Network)**: This is a network of LLM-powered agents. Each agent in the system has its own LLM "brain" and potentially its own specialized tools and knowledge. They collaborate by communicating with each other—sending messages that their respective LLMs process and act upon. For example, a "researcher" agent could find information and pass it to a "writer" agent to summarize.


# Knowledge Center

Users can inject their knowledge into the platform through various means, such as uploading documents, providing URLs, connecting to databases, or direct conversation. The platform processes this information through domain-specific workflows, converting it into semantic, structured domain knowledge.

The Knowledge Center includes two types of data:

* **Knowledge**: Unstructured data such as documents and URLs
* **Database(Coming Soon)**: Structured data from uploaded Excel files or connected databases

**Why we need a Knowledge Center:**

* To Ground AI in Reality: Without a knowledge base, an AI model (the agent's brain) relies solely on its internal, memorized training data. This data can be outdated or incomplete, leading to "hallucinations" or made-up answers. A knowledge base provides a factual source of truth.
* To Ensure Currency and Relevance: The world is constantly changing. You can update a knowledge base with new information (e.g., new company policies, recent news, product updates) instantly, without the massive cost and time of retraining the entire AI model.
* To Provide Domain-Specific Expertise: You can create specialized knowledge bases for specific fields like medicine, law, or engineering, giving an AI system expert-level information in that domain.


# Tools

**Tools** are specialized functional components that extend an agent's capabilities beyond language processing. They act as the interface between AI models and external systems, enabling agents to perceive, interact with, and manipulate the real world.

> **Core Role: Tools serve as the bridge between large AI models (such as intelligent agents) and the real world.** Through Tools, agents can not only understand and process information but also interact with external systems, data sources, and the physical world, achieving a complete "perception-action" loop that transforms passive language models into active, capable agents.

* **Flow Tools**: Tools built through process flows, suitable for scenarios requiring multiple steps, conditional logic, and data transfer. Example: automated approval workflows, data cleansing processes.
* **API Tools**: Tools integrated via APIs, ideal for connecting with external systems and data exchange. Example: calling third-party weather APIs, ERP system integration.
* **MCP Tools**: Tools based on Multi-Channel Processing, suitable for handling multiple data sources and parallel tasks. Example: scraping data from multiple websites simultaneously, batch order processing.
* **Built-in Tools**: Pre-built tools provided by the platform, such as web crawlers, SQL executors, search engines, OCR, etc., ready to use for common business needs.

**What can Tools do?**

* Data collection and processing (e.g., web scraping, data cleansing)
* Integration with external systems (e.g., API calls, database operations)
* Automated task execution (e.g., batch operations, scheduled tasks)
* Information retrieval and analysis (e.g., full-text search, intelligent recommendations)


# Agents

**Agents** are intelligent task executors that combine knowledge, tools, and reasoning capabilities to understand user intent and automatically complete assigned tasks. They access knowledge bases as their information foundation and invoke tools as their action mechanisms, enabling them to make informed decisions and execute complex workflows.

## Core Components

* **Knowledge Access**: Agents tap into knowledge bases (documents, databases, real-time data) to inform their decision-making and provide accurate, contextual responses
* **Tool Integration**: Agents orchestrate multiple tools to perform actions in the real world, from data processing to system integrations
* **Reasoning Engine**: Agents analyze information, plan steps, and adapt their approach based on context and outcomes

## Types of Agents

* **Instruction-Based Agents**: Agents driven by prompt instructions, suitable for scenarios requiring flexible expression and complex reasoning. They leverage knowledge to provide informed responses and use tools to execute actions. Example: automated report generation with data analysis, intelligent Q\&A with knowledge retrieval, content creation with fact-checking.

<figure><img src="/files/Ej8wkYiovjQbDke9mztN" alt=""><figcaption></figcaption></figure>

* **Flow-Based Agents**: Agents built through visual flow design, suitable for scenarios requiring process control and task decomposition. They systematically access knowledge at decision points and invoke tools at action steps. Example: automated customer service with knowledge lookup, business process automation with data validation.

<figure><img src="/files/otHKCZZ9aaUQvDkyZF2D" alt=""><figcaption></figcaption></figure>

## Capabilities

Agents can:

* **Process Information**: Understand natural language instructions and extract meaning from complex requests
* **Access Knowledge**: Query knowledge bases, retrieve relevant information, and synthesize insights from multiple sources
* **Execute Actions**: Orchestrate multiple tools to accomplish complex, multi-step tasks
* **Reason and Decide**: Make informed decisions based on available knowledge, context, and real-time data
* **Adapt and Learn**: Adjust their approach based on outcomes and changing conditions
* **Automate Workflows**: Transform manual processes into intelligent, automated systems

The synergy between knowledge and tools enables agents to be both informed and capable—they know what to do and have the means to do it.


# Multi-Agent

**Multi-Agent** systems are collaborative networks of specialized agents that work together to solve complex, multi-faceted challenges. Each agent brings unique expertise, knowledge access, and tool capabilities, enabling the system to handle tasks that exceed the scope of any individual agent through intelligent coordination and dynamic collaboration.

## How Multi-Agent Systems Work

Multi-agent systems operate through:

* **Specialization**: Each agent focuses on specific domains, maintaining specialized knowledge bases and tool sets
* **Communication**: Agents exchange information, findings, and intermediate results through structured messaging
* **Coordination**: A supervisor or distributed coordination mechanism orchestrates task allocation and workflow management
* **Collaboration**: Agents build upon each other's work, creating synergistic outcomes that surpass individual capabilities

## Architecture Patterns

* **Hierarchical Structure**: A supervisor agent coordinates multiple specialized worker agents, making high-level decisions and delegating specific tasks
* **Peer-to-Peer Network**: Agents collaborate as equals, passing tasks and information based on expertise and availability
* **Pipeline Workflow**: Agents work in sequence, where each agent's output becomes input for the next, creating sophisticated processing chains

## Capabilities

Multi-agent systems excel at:

* **Complex Problem Solving**: Breaking down large, multifaceted challenges into manageable, specialized tasks
* **Cross-Domain Integration**: Combining expertise from different fields (technical, business, creative) for comprehensive solutions
* **Parallel Processing**: Executing multiple tasks simultaneously across different agents for improved efficiency
* **Adaptive Workflows**: Dynamically adjusting task allocation and collaboration patterns based on real-time requirements
* **Fault Tolerance**: Maintaining system functionality even if individual agents encounter issues or limitations
* **Scalable Operations**: Adding or removing specialized agents based on workload and complexity requirements

## Use Cases

* **Project Management**: Research agents gather requirements, planning agents create timelines, execution agents monitor progress
* **Content Creation**: Research agents collect information, writing agents create content, review agents ensure quality
* **Business Intelligence**: Data collection agents gather metrics, analysis agents identify patterns, reporting agents create insights
* **Customer Support**: Triage agents classify issues, specialist agents handle domain-specific problems, escalation agents manage complex cases

The power of multi-agent systems lies in their ability to combine the specialized knowledge and capabilities of individual agents into a cohesive, intelligent collective that can tackle challenges beyond the reach of any single agent.


# Contact Support

If you need assistance or have questions about our platform, you can reach our support team at:

**Email:** <vincentpo@workfx.ai>

Our support team is here to help you with any technical issues, account questions, or general inquiries you may have.


# AI Experts Marketplace

### 1 Introduction

The AI Experts Marketplace is a page where you can browse available AI Experts and start using them in Chat.

### 2 Explore Available AI Experts

1. Open AI Experts Marketplace from the left navigation.
2. Browse the agent list.
3. For each agent card, check:
   * Agent name
   * Short description
4. When you find the agent you want to use, click Try now.

<figure><img src="/files/P9uT90OLMa5hXhTn8JIK" alt=""><figcaption></figcaption></figure>

### 3 Try Now → Chat Experience

1. Click Try now on an AI Expert card.
2. You will be redirected to the Chat page.
3. The selected AI Expert will be loaded automatically.
4. Start chatting in the input box to use the agent.

**Try now**

Redirects you to the Chat page with the selected AI Expert pre-selected.

<figure><img src="/files/qJLYEMFeppH9h8QuIRLr" alt=""><figcaption></figcaption></figure>


# Members

### 1 Introduction

The Members page is used to manage who can access the current project, including inviting new users and setting their roles.

### 2 Open Members Page

1. In the left navigation, click Members.
2. The page shows:
   * Current project members list
   * Role column for each member
   * Pending invitations section

<figure><img src="/files/MWkN1ovCLhIamEgkvr6m" alt=""><figcaption></figcaption></figure>

### 3 Invite Users to the Current Project

1. Click Invite by Email (top-right).
2. In the invite panel:
   * Email addresses: enter one or more emails (separated by commas)
   * Role: choose the role for the invited users
3. Click Send Invites.

{% hint style="info" %}
Invited members will consume credits from this project when using AI features.
{% endhint %}

<figure><img src="/files/MuyNYByNRvk5aPcd3AZ0" alt=""><figcaption></figcaption></figure>

### 4 Switch Project / Rename Current Project

The top-left project selector (next to the project name) supports:

* Switch Project: select another project from the dropdown list
* Rename Current Project: rename the current project from the same menu

  <figure><img src="/files/PXBH6I3iwmdCSTx9zsTl" alt=""><figcaption></figcaption></figure>

***

### 5 Manage Member Roles

1. In the members table, locate the user you want to update.
2. Under the Role column, click the role dropdown.
3. Select one of the available roles:
   * **Administrator**: full access to the project (management permissions).
   * **Contributor**: can contribute and operate within the project, but with limited admin capabilities.
   * **Reader**: read-only access.

<figure><img src="/files/JTqMcOgjKiDpoJBRTGc8" alt=""><figcaption></figcaption></figure>

### 6 Pending Invitations

* The Pending Invitations section lists invitations that have not been accepted yet.
* You can click Cancel to revoke a pending invitation.


# Audit Logs

### 1 Introduction

The Audit Logs page shows a history of actions and changes in the system. You can use filters to locate specific events by actor, resource, time range, and status.

### 2 Open Audit Logs

1. In the left navigation, click Audit Logs.
2. The page includes:
   * A filter panel at the top
   * An audit log table below

<figure><img src="/files/v5TfGP69yBBdWY9rGPwn" alt=""><figcaption></figcaption></figure>

### 3 Filter Audit Logs

Use the filter panel to narrow down results:

* Actor Type: select the actor type (e.g., account)
* Actor ID: input the actor identifier
* Resource Type: input the resource type (e.g., agent, knowledge, database, table, etc.)
* Resource ID: input the target resource identifier
* Operation Status: select status (e.g., Success / Failed)
* Start Time / End Time: select a datetime range

**Steps:**

1. Set one or more filters.
2. Click Apply Filters to refresh the results.
3. Click Reset to clear all filters.

### 4 Read Audit Log Records

Each row in the table represents one audit event. Common columns include:

* Event Type: action type (e.g., agent.created, agent.updated)
* Actor Type / Actor ID / Actor Name: who performed the action
* Resource Type / Resource ID: what resource was affected
* Event Time: when the event happened
* Operation Status: result of the action (e.g., Success)

### 5 Pagination

Use the bottom controls to navigate:

* Change Rows per page
* Move between pages
* Jump to a specific page (if available)


# Knowledge

## **1 Introduction**

Knowledge is the foundation of intelligent AI systems, representing the structured and unstructured information that powers your agents and applications. In our platform, knowledge encompasses various types of data sources that can be processed, indexed, and made searchable for AI agents to reference during conversations and task execution.

### What is Knowledge?

Knowledge in our system refers to textual information that can be stored, organized, and retrieved to enhance AI capabilities. This includes:

* **Documents**: Files in various formats (PDF, DOC, DOCX, PPT, PPTX, XLSX, Markdown, images, etc.)
* **Web Content**: Information scraped from URLs and webpages
* **Manual Inputs**: Custom text content entered directly

### Enhanced Domain Mode

For knowledge RAG system, we support Enhanced Domain Mode.

Unlike traditional RAG approaches that rely on basic chunking and keyword matching, our Enhanced Agentic RAG goes much further. It builds a systemic, graph-based connection across multiple layers of knowledge—from the entire document down to individual chunks—enabling your AI agent to truly understand relationships, context, and hierarchy within your data. Even better, these knowledge graphs dynamically evolve based on user interactions and feedback, continuously refining the agent's retrieval strategies and responses. The result? More accurate, context-aware, and ever-improving answers—tailored to your unique domain.

### Why Use Knowledge?

Knowledge serves several critical purposes:

* **Enhanced AI Accuracy**: Provide agents with domain-specific information to generate more accurate and relevant responses
* **Contextual Understanding**: Enable AI to understand your business context, products, services, and procedures
* **Consistent Information**: Ensure all agents have access to the same up-to-date information
* **Customization**: Tailor AI behavior based on your specific organizational knowledge
* **Efficiency**: Reduce the need for manual input by pre-loading relevant information

## **2 Create a Knowledge**

### **2.1 Knowledge Tab**

Click the "**Knowledge**" tab on the left side of the page to access the **Knowledge Center**.

* Here, you will see all your existing knowledges.
* Now you can start creating a new knowledge database by clicking "**+**"!

<figure><img src="/files/3VgJqifMUVEDtnYIhjeq" alt=""><figcaption></figcaption></figure>

### **2.2 Create and Configure the Settings for the Knowledge**

Start by adding a **Knowledge Database**, selecting its **type**, and giving it a name and **description**.

#### **Select Knowledge Type**

At the top, you can choose between this type of knowledge databases:

* **Knowledge**\
  Unstructured data like files and webpages.

**Enter the Name**

In the **"Name"** field, you need to give your knowledge database a name. This helps identify it later when used by agents or apps.

#### **Provide a Description**

In the **"Description"** field, briefly describe the purpose or content of this knowledge database. This helps others understand its role or scope.

#### **Save or Cancel**

* Click **"Save"** to create and store the database.
* Click **"Cancel"** to discard the process and return to the previous view.

<figure><img src="/files/Xj3mireSztqjrUYJ155c" alt=""><figcaption></figcaption></figure>

### **2.3 Prepare Your Data**

Click "Add Files" **and** "now you can add "documents" to the Knowledge Database you just created here!

<figure><img src="/files/iV1o5Y9k7L8TlnDwKOAe" alt=""><figcaption></figcaption></figure>

We categorize supported documents into **four types**, and you can choose one of the three from the top of the page:

* **Document**\
  You can upload your **local file** here. Currently, we support the following formats: PDF, DOC, DOCX, PPT, PPTX, XLSX, Markdown, PNG, JPG, TXT, MSG, JSON.

<figure><img src="/files/vVsbravxMwK0rMzFATmY" alt=""><figcaption></figcaption></figure>

* **Manual Input**\
  You can manually enter the **text content** that will be used as a document.

<figure><img src="/files/ei7Sb0ZVgnwy6II6jM2G" alt=""><figcaption></figcaption></figure>

* **Webpage**\
  You can enter **URL** to fetch data from the webpage.

<figure><img src="/files/ZncU2n7JTQwjFHn1v2Wy" alt=""><figcaption></figcaption></figure>

* **Datasources**

You can select documents from external sources.

<figure><img src="/files/GagDdJo9fgL7nIhHtbbx" alt=""><figcaption></figcaption></figure>

### **2.4 Check Your Document**

<div data-full-width="false"><figure><img src="/files/LIZQK9winYzw2hF2hAxE" alt=""><figcaption></figcaption></figure></div>

After successfully creating the document (Doc), you can view it on the corresponding Knowledge page along with several key attributes, including:

* **Name**: The title or identifier of the document
* **File Size**: The size of the uploaded file
* **Word Count**: The total number of words in the document
* **Chunks**: The number of segments the document has been split into
* **Status**: Indicates the current processing state (e.g., “Pending”, “Trained”)
* **Enabled**: Whether the document is currently active and available for retrieval

<figure><img src="/files/UHJ8YmWSlzwrHx324VU4" alt=""><figcaption></figcaption></figure>

By clicking on the corresponding document (Doc), you can view detailed information about its chunk segmentation as well as associated metadata.

You can also manually **enable** or **disable** individual chunks to flexibly control their participation in the knowledge retrieval process.

## **3 Enhanced Domain Mode**

When creating a new knowledge, you have the option to enable Enhanced Domain Mode for advanced retrieval capabilities.

### What is Enhanced Domain Mode?

Enhanced Domain Mode represents our most advanced knowledge processing system. Unlike traditional RAG approaches that rely on basic chunking and keyword matching, our Enhanced Agentic RAG goes much further. It builds a systemic, graph-based connection across multiple layers of knowledge—from the entire document down to individual chunks—enabling your AI agent to truly understand relationships, context, and hierarchy within your data.

### Key Features

* **Graph-Based Connections**: Creates intelligent links between related content across your knowledge base
* **Multi-Layer Understanding**: Analyzes relationships from document level down to individual chunks
* **Dynamic Evolution**: Knowledge graphs continuously evolve based on user interactions and feedback
* **Contextual Hierarchy**: Maintains understanding of information structure and relationships
* **Adaptive Retrieval**: Continuously refines retrieval strategies based on usage patterns

### Benefits

* **More Accurate Responses**: Deeper understanding leads to more precise answers
* **Context-Aware Results**: Maintains awareness of information relationships and context
* **Continuous Improvement**: System learns and improves over time through user interactions
* **Domain Specialization**: Tailored specifically to your unique domain and use cases

### How to Enable Enhanced Domain Mode

When creating a new knowledge:

<figure><img src="/files/tEWEWXgqOueKrDWpXI4G" alt=""><figcaption></figcaption></figure>

1. During the knowledge creation process, look for the Enhanced Domain Mode option
2. Toggle the Enhanced Domain Mode setting to enable advanced processing
3. Note that Enhanced Domain Mode may require additional processing time but provides superior retrieval capabilities
4. Save your knowledge configuration with Enhanced Domain Mode enabled

<figure><img src="/files/kVFL049xX2AAj5gpJStH" alt=""><figcaption></figcaption></figure>

After enabling enhancing mode, you can see the extracted **keywords** for each chunk in the document interface.

The result is a more intelligent, context-aware, and ever-improving knowledge system that delivers answers tailored to your unique domain.


# Databases

## **1 Introduction**

In addition to unstructured Knowledge (documents, webpages, manual inputs), our platform also supports Datasets, which are designed for structured data. A Dataset functions like a lightweight database that enables you to organize information into tables with custom fields, making it easy to manage and query data consistently across your workspace.

### **1.1 What is a Dataset?**

A Dataset is a structured data repository, similar to creating a database. Inside a dataset, you can create one or more tables, each with a customizable schema (fields/columns). Datasets are ideal for storing information that is naturally tabular—such as customers, products, tickets, SEO tasks, or any other records you want to manage with defined fields.

### **1.2 Why Use Datasets?**

Datasets provide several practical benefits:

* Structured Organization: Data is stored in tables with defined fields, making it consistent and easier to maintain.
* Custom Schema: You define exactly which fields you need (e.g., text, numbers, tags, etc.).
* Better Data Management: Update dataset name/description anytime in Settings to keep data ownership and purpose clear.
* Query-Friendly: Table and column IDs are designed for SQL operations, enabling future querying or integration use cases.

## 2 Create a Dataset

### 2.1 Database Tab

Navigate to Knowledge Center → Database to view all existing datasets (databases).

From this page, you can create a new dataset or open an existing one.

<figure><img src="/files/4liAjD4rSVmQ5Dp9kE57" alt=""><figcaption></figcaption></figure>

#### 2.2 Create and Configure Dataset Settings

**To create a new dataset:**

1. Click Create Database.
2. In the creation dialog:
   * Name: A unique dataset name (e.g., customer\_db, seo\_db)
   * Description: A short explanation of what the dataset is used for
3. Click Save to create the dataset.

<figure><img src="/files/PFRRoqbNZgXoaBNavK1i" alt=""><figcaption></figcaption></figure>

**Create Database**

Create a structured database for SQL operations and data management.

### 3 Create Tables Inside a Dataset

#### 3.1 Open the Dataset

Once created, the dataset will appear in the database list. Click the dataset card to enter it (e.g., test\_Database).

#### 3.2 Create a Table

Inside the dataset, go to Tables and click Create Table.

<figure><img src="/files/s8Aaj6K9UPeeVyr878E0" alt=""><figcaption></figcaption></figure>

**Create Table**

Create a structured database table for SQL operations.

#### 3.3 Define Table Schema (Custom Fields)

When creating a table, you can fully customize its structure:

* Table Name: Used internally (recommended: lowercase + underscores, e.g., users, orders, seo\_tasks)
* Display Title: Shown in UI (e.g., Users, Orders, SEO Tasks)
* Fields (Columns):
  * Column ID: Used in SQL queries (recommended: snake\_case, e.g., customer\_name)
  * Field Name: Display name in UI (e.g., Customer Name)
  * Field type (e.g., Single Line Text)
  * Index option (e.g., No Index)

The system may auto-generate common fields such as Id (Primary Key), CreatedAt, UpdatedAt.

<figure><img src="/files/97mLx8Ohu081sQu6UetQ" alt=""><figcaption></figcaption></figure>

### 4 Dataset Settings (Rename / Update Description)

Each dataset has a Settings page where you can update:

* Name
* Description

After editing, click Save.

<figure><img src="/files/C4ZmJKegnbH2j19cycAk" alt=""><figcaption></figcaption></figure>

### 3.4 Table View (Data & Fields)

<br>

After creating a table, you can manage it through two main tabs: Data and Fields.

This makes it easy to separate record operations (what’s inside the table) from schema design (how the table is structured).

<br>

#### 3.4.1 Data Tab (View & Manage Records)

The Data tab displays the records stored in your table in a spreadsheet-like view.

Here you can quickly review values, scan key identifiers, and validate that your data is being written correctly.

Common system fields (e.g., Id (PK), CreatedAt, UpdatedAt) are shown alongside your custom fields.

<figure><img src="/files/Km8d0mSeXhoAzyaV2MMg" alt=""><figcaption></figcaption></figure>

#### 3.4.2 Fields Tab (Define Table Schema)

The Fields tab is where you define and maintain the structure of the table:

* View all custom fields
* Check each field’s Type (e.g., Text)
* Configure Index settings (if available)
* Edit or delete fields using the action icons
* Add new fields via New Field

This is the recommended place to evolve your table schema over time, especially when you need to support new data attributes.

<figure><img src="/files/KLxVB7NxhZShQRvgCfHI" alt=""><figcaption></figcaption></figure>


# Agent

**Agents** are intelligent task executors that combine knowledge, tools, and reasoning capabilities to understand user intent and automatically complete assigned tasks. They serve as the core automation engine in the Workforce Factory, capable of handling complex workflows and decision-making processes.

## What Are Agents?

Agents are AI-powered systems that can:

* **Understand Instructions**: Process natural language commands and extract actionable intent from complex requests
* **Access Knowledge**: Query knowledge bases, documents, and databases to inform their decision-making
* **Execute Actions**: Use tools and integrations to perform real-world tasks and operations
* **Reason and Decide**: Make informed decisions based on available information and context
* **Automate Workflows**: Transform manual processes into intelligent, automated systems

## Types of Agents

The Workforce Factory supports two main types of agents:

### [Instruction-Based Agents](/workfx-companion-agent-knowledge/workforce-factory/agent/instruction-based-agent)

Driven by prompt instructions and natural language commands. These agents excel at:

* Flexible expression and complex reasoning
* Intelligent Q\&A with knowledge retrieval
* Content creation with fact-checking
* Automated report generation with data analysis

### [Flow-Based Agents](/workfx-companion-agent-knowledge/workforce-factory/agent/flow-based-agent)

Built through visual flow design for structured processes. These agents are ideal for:

* Process control and task decomposition
* Business process automation with data validation
* Automated customer service with knowledge lookup
* Systematic workflows with decision points


# Instruction-Based Agent

## Introduction

An **Instruction-Based Agent** is a lightweight AI system architecture designed to perform tasks by following explicitly provided instructions, specified tools, knowledge bases, and input variables. Unlike complex multi-step reasoning or autonomous decision-making systems, the core idea of an Instruction-Based Agent is to complete tasks simply by receiving a clear prompt, a set of tools, relevant knowledge, and input data—without requiring sophisticated reasoning chains or extensive context management.

## **Tutorial Video**

For a step-by-step walkthrough of creating an instruction-based agent, watch this tutorial video:

{% embed url="<https://www.youtube.com/watch?v=9DbeGilP0oQ>" %}

## **Key Components:**

* **Input Variables:** Dynamic inputs from users that drive specific task execution.
* **Prompt:** Defines the agent’s role, behavior, and expected output format. For example, "You are a financial analyst responsible for calculating quarterly profits."
* **Tools:** External functionalities the agent can call, such as database queries, API calls, or calculators.
* **Knowledge Base:** Background information or data sources such as documents, databases, or APIs that support the task.

## **Workflow:**

1. Receive input including task description and variables.
2. Construct an appropriate prompt based on the input.
3. Select and invoke the specified tool(s).
4. Process the tool’s output.
5. Generate the final response and return it to the user.

## **Advantages:**

* **High adaptability**: Capable of handling open-ended and novel requests without predefined workflows.
* **Tool-agnostic flexibility**: Dynamically selects and combines tools based on the task context.
* **Conversational continuity**: Supports multi-turn interactions and maintains context effectively.
* **Low design overhead**: Reduces the need for manual task flow design, making development faster and more scalable.

## **Limitations:**

* **LLM dependency**: Performance is heavily reliant on the reasoning, planning, and memory capabilities of the underlying language model.
* **Unpredictable behavior**: Outputs can vary significantly depending on context, reducing consistency and control.
* **Scalability challenges for complex tasks**: May struggle with long, multi-step tasks that require high precision or over 10 interaction rounds.
* **Difficult to debug and evaluate**: The decision-making path is implicit, making it harder to trace or fine-tune behavior.

## **Typical Use Cases:**

* Open-ended question answering (e.g., "How do I prepare for a job interview?")
* Dynamic task execution using multiple tools (e.g., search → analyze → summarize)
* Conversational AI and personal assistants
* User-driven exploration tasks (e.g., travel planning, academic research support)

## Creation

### **Prefix Prompt**

<figure><img src="/files/j3iqZgmVeeD5MUfiqELc" alt=""><figcaption></figcaption></figure>

A predefined text added before the user input to guide the model's response. Variables can be embedded in the prefix prompt to customize it dynamically.

### **Variables**

<figure><img src="/files/ihxa3CZbWQhqpSK2DuXG" alt=""><figcaption></figcaption></figure>

Input data fields used to pass information between nodes in the workflow. These variables can be referenced inside the prefix prompt.

### **Knowledge**

<figure><img src="/files/QwrsnZeKN73UheeKiBzA" alt=""><figcaption></figcaption></figure>

The external Knowledge Database used to support information retrieval or reasoning. In a prompt-based agent, the system automatically calls the relevant knowledge sources as needed.

### **Tools**

<figure><img src="/files/11ozOKmgeDHFgJmYCB0v" alt=""><figcaption></figcaption></figure>

External utilities or custom functions integrated into the workflow to perform specialized tasks. The instruction-driven agent automatically invokes these tools during processing.


# Flow-Based Agent

## **Introduction**

A **Flow-Based Agent** is a structured AI system that executes tasks through a predefined sequence of nodes, each representing a specific operation such as logic, knowledge retrieval, tool invocation, or LLM-based reasoning. Unlike instruction-based agents that dynamically respond to prompts, a flow-based agent follows a fixed execution graph, offering predictability and control over task execution. This architecture is well-suited for applications where consistent behavior, rule-based decisions, and modular logic are required.

## **Tutorial Video**

Smart Flow-Based AI Agent : Enhanced Agentic RAG knowledge base retrieval and real-time web search

{% embed url="<https://www.youtube.com/watch?v=HmMIAO0LvlY>" %}
A comprehensive guide to understanding and implementing flow-based agents
{% endembed %}

## **Key Components**

* **Input Variables**: User-provided data that initiates or guides the flow.
* **Flow Graph**: A directed execution path made up of modular nodes. Each node performs a specific function.
* **LLM Node**: Optional nodes that utilize large language models for generating responses, interpreting data, or summarizing results.
* **Logic Nodes**: Perform operations such as branching (`If/Else`), looping, or error handling.
* **Tool Nodes**: Execute external API calls, database queries, or third-party service integrations.
* **Answer Node**: Returns the final output to the user after flow completion.

## **Workflow**

1. Receive initial input (task + variables).
2. Enter the flow graph at the Start Node.
3. Progress through nodes in sequence or branches:
   * Retrieve knowledge
   * Perform logic checks
   * Invoke tools
   * Use LLM reasoning if required
4. Pass results through each node until reaching the Answer Node.
5. Return a structured, validated response to the user.

## **Advantages**

* **Predictable execution**: Ensures consistent and deterministic outcomes across executions.
* **Easier to debug and test**: The explicit flow structure allows step-by-step tracing and error isolation.
* **Hybrid reasoning integration**: Combines symbolic logic and LLM capabilities where needed without sacrificing structure.
* **Modular design**: Enables reusable flows and composable logic across tasks.

## **Limitations**

* **Reduced flexibility**: Not ideal for open-ended or ill-defined tasks that require dynamic adaptation.
* **Requires upfront flow design**: Developers must explicitly define task logic, branches, and tool invocations ahead of time.
* **Less resilient to edge cases**: Can fail or misroute when encountering unexpected user inputs outside the designed flow.

## **Typical Use Cases**

* Structured business processes (e.g., insurance claims, onboarding procedures)
* Automated workflow orchestration (e.g., IT ticket resolution, form processing)
* Decision trees with tool integrations (e.g., customer support routing)
* Compliance-driven operations (e.g., legal review, policy enforcement)


# Agent Nodes

## **Introduction to AgentFlow Nodes**

In **AgentFlow**, a workflow is constructed using a series of modular **Nodes**, each representing a discrete function or operation. These nodes are visually connected on the canvas to define the logic, control flow, and data handling of the entire process.Here’s a brief introduction to the main types of **Nodes** in **AgentFlow**:

### **Basic**

* **Start Node**

  <figure><img src="/files/vKb7KKIfodvvFDi96aak" alt=""><figcaption></figcaption></figure>

{% columns %}
{% column width="41.66666666666667%" %}

<figure><img src="/files/8go34YwQWOoiL7S4YaNE" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

* **Function**

Serves as the default and fixed entry point for any workflow-based agent. It is automatically created when a new workflow is initialized.

* **Configurable Parameters**

Users can define additional custom input variables as needed to support downstream logic.

* **Input**

Always receives the user's query by default. Also accepts any additional user-defined input variables.

* **Output**

Passes the received query and input variables to subsequent connected nodes for further processing.
{% endcolumn %}
{% endcolumns %}

***

* **End Node**

  <figure><img src="/files/qPRAOKeD4KuhxwcOXP70" alt=""><figcaption></figcaption></figure>

{% columns %}
{% column width="41.66666666666667%" %}

<figure><img src="/files/4BP1YDiYzy7Nejj475Uf" alt=""><figcaption></figcaption></figure>

{% endcolumn %}

{% column %}

* **Function**\
  Serves as one of the possible termination points in a workflow-based agent. It collects and outputs results from preceding nodes for final use, external return, or logging.
* **Configurable Parameters**\
  Users can define custom output variables to export selected values. These values are typically references to outputs from previous nodes.
* **Input**\
  Receives data from one or more connected upstream nodes. The data may include intermediate results or values computed earlier in the workflow.
* **Output**\
  Exports the specified output variables. Only variables explicitly defined by the user will be included in the final result.
  {% endcolumn %}
  {% endcolumns %}

***

* **Answer Node**

  <figure><img src="/files/lEAxuCH0Lk5Mb2UmSgfX" alt=""><figcaption></figcaption></figure>

{% columns %}
{% column width="41.66666666666667%" %}

<figure><img src="/files/cvpXaIpwtWgJKS9PszVJ" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

* **Function**\
  Serves as a conversational termination point in a workflow, typically used in Chat Flow scenarios. It outputs a natural language response to the user, allowing dynamic embedding of upstream variables. It cannot coexist with an End Node in the same workflow.
* **Configurable Parameters**\
  Users can define a response template using natural language, where variables from preceding nodes can be embedded using placeholders .
* **Input**\
  Receives data from one or more upstream nodes, including all referenced variables intended for insertion into the final response.
* **Output**\
  Generates a natural language response by resolving variable references within the defined template. The response is returned directly to the user as the final message of the workflow.
  {% endcolumn %}
  {% endcolumns %}

***

**Transform**

* **Code Node**

  <figure><img src="/files/KAWi2AxZk7IGlzgWF7Ui" alt=""><figcaption></figcaption></figure>

  * **Function**\
    Executes custom Python code as part of the workflow. Used for implementing flexible logic, data processing, or integration tasks that require scripting.
  * **Configurable ParametersInput Variables**: Passed into the code as function parameters.**Output Variables**: Returned as a dictionary where keys are variable names available to downstream nodes.
  * **Input**\
    Receives values from upstream nodes corresponding to the user-defined input variable names. These are passed as arguments to the code function.
  * **Output**\
    Return a dictionary containing one or more key-value pairs. Each key represents an output variable name, which can be used by downstream nodes.A typical example is as follows：

{% code fullWidth="false" %}

```python
def main(input_text1: str, input_text2: str) -> dict:
    combined_text = input_text1 + " " + input_text2
    length = len(combined_text)
    return {
    "combined_text": combined_text,
    "text_length": length
}
```

{% endcode %}

&#x20; This function `main` takes two input strings, `input_text1` and `input_text2`. It concatenates them with a space in between to form `combined_text`. Then, it calculates the length of this combined string and stores it in `text_length`. Finally, the function returns a dictionary containing both the concatenated result and its length as output variables.<br>

***

**Control Flow**

* **Condition Node**

  <figure><img src="/files/KCN5hcqdlwx8zjAC85C8" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/hJXkkqnODnzLsvCMAwgD" alt=""><figcaption></figcaption></figure>

*

```
* **Function**
```

```
&#x20;      Directs the workflow based on conditional logic. It evaluates one or more user-defined conditions and determines which downstream branch to execute accordingly.

* **Configurable Parameters**
  * A **referenced variable** (from upstream nodes)
  * A **logical expression** (e.g., `==`, `>`, `in`, etc.)
  * An associated **output branch** (executed if the condition is true) Branches are evaluated in order. Only the first true condition's branch is executed. An optional `else` branch can be defined as a fallback.
* **Input**

&#x20;      Receives variables from upstream nodes that are used in condition evaluations.

* **Output**

Executes the branch corresponding to the first condition that evaluates to true. If none match and an `else` branch is defined, the `else` branch is executed.
```

***

* **For Each Node**

<figure><img src="/files/Wrl9Yb4YgHWk8jTZ2aQ6" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/H0npJYbdoeLz8FPRqT4W" alt=""><figcaption></figcaption></figure>

* * **Function**:\
    Iterates over an input array and repeatedly executes the nodes within a defined loop boundary.
  * **Structure**:
    * A fixed entry node: **For Each Start**
    * A loop boundary box: drag any nodes into this area to make them part of the loop body
  * **Usage**:
    * Drag nodes from the node list into the loop area
    * Set the **Input Variable** (must be of **Array** type)
    * Set the **Output Variable** (must be the output from within the loop scope.)
  * **Execution Logic**:
    * Automatically iterates through the array
    * Provides two built-in variables to nodes inside the loop:
      * `for_each_index`: the index of the current item
      * `for_each_value`: the value of the current item
  * **Optional Setting**:
    * **Parallel Execution**: Enable this option for loops without inter-item dependencies to improve performance.

***

* **Variable Assigner Node**

<figure><img src="/files/KvAsDlMZG4HB5OndWoYD" alt=""><figcaption></figcaption></figure>

{% columns %}
{% column width="41.66666666666667%" %}

<div align="center"><figure><img src="/files/0geSR0ryPFJXZvnWrtoR" alt=""><figcaption></figcaption></figure></div>
{% endcolumn %}

{% column %}

* **Function**:\
  Sets or updates globally accessible variables within the workflow. Supports both assignment and reset operations, enabling dynamic runtime behavior based on changing context.

* **Configurable Parameters**:
  * **Target variable**: The name of the global or referenced variable to modify
  * **Assignment value**: A constant, expression, or variable reference to assign
  * **Operation type**:
    * `assign`: Assign a new value to the variable
    * `reset`: Clear or reset the variable to its default state
  * Multiple variable operations can be configured in one node

* **Input**:\
  Receives variables or context from upstream nodes as sources for assignment.

* **Output**:\
  Passes the updated variables to downstream nodes for use in subsequent steps.
  {% endcolumn %}
  {% endcolumns %}

* **Human Review Node**

  <figure><img src="/files/lwLPNpp7ivXanwwu3vEr" alt=""><figcaption></figcaption></figure>

  * **Function**

  Pauses the automated workflow and sends a message to a designated human reviewer for manual decision-making. Based on the reviewer’s selection, the workflow proceeds along a specified branch.

  * **Configurable Parameters**
    * **Review Message**: A customizable message presented to the reviewer to explain the context and request input.
    * **Human Review Type**: Specifies the review format (e.g., single choice, multi-choice, comment).
    * **Options**: A list of selectable options, each including:
      * **Option Name**: A label for the option (e.g., "Approve", "Reject").
      * **Option Description**: An optional description to help the reviewer understand what the option means.
    * **Reviewer Role**: Defines which user group or role is authorized to perform the review.
  * **Input**

  Receives all necessary variables and context from upstream nodes to assist the reviewer in making a decision.

  * **Output**

  The selected option is returned as an output variable and determines the next step in the workflow, typically branching based on the review result.

***

**AI Models**

* **LLM Node**

  <figure><img src="/files/kjaV1ofQjecqZ0fotlFt" alt=""><figcaption></figcaption></figure>

  * **Function**
  * &#x20; Integrates a Large Language Model (LLM) into the workflow to generate natural language responses, perform text understanding, summarization, translation, or other NLP-related tasks based on provided input variables. Enables conversational AI, content generation, or intelligent decision support.
  * **Configurable Parameters**
    * **System Prompt** A fixed or semi-fixed instruction that provides context or role setting for the LLM, guiding its response style and behavior (e.g., "You are a helpful assistant.")
    * **User Prompt** A dynamic prompt template that incorporates input variables to form the actual query sent to the LLM.
    * **Model Settings** Parameters like temperature, max tokens, top-p, frequency penalty, presence penalty, etc., to control output randomness, length, and style.
    * **Input Variables** Variables from upstream nodes used to fill placeholders in the User Prompt.
    * **Output Variables** Variables that store the LLM’s generated responses for downstream processing.
  * **Input**
  * &#x20; Receives input variables from previous nodes, which are injected into the User Prompt template to produce the final query for the LLM.
  * **Output**
  * &#x20; Returns generated text(s) or structured response(s) from the LLM, mapped to output variables for further use or display.

***

* **Question Classifier Node**

<figure><img src="/files/WGPE62jDxNaVhxRMOmBx" alt=""><figcaption></figcaption></figure>

{% columns %}
{% column width="41.66666666666667%" %}

<figure><img src="/files/8BykmN4nuFGYidNacsoo" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="/files/nB4YAdWdge1JjRffXC5Z" alt=""><figcaption></figcaption></figure>

* **Function**:\
  Classifies user input into predefined categories to guide downstream workflow branching based on intent.
* **Configurable Parameters**:
  * **Model**: The language model used (e.g., GPT-4o-mini)
  * **Chat History**: Whether to include prior conversation context
  * **Class List**: Custom category labels defined by the user; each class maps to an output branch
  * **Prompt**: The classification prompt used to guide the model's decision. Leaving it blank is also allowed.
  * **Input Variables**: The input field to be classified, usually the user’s query (e.g., `User Query`)
    {% endcolumn %}
    {% endcolumns %}

***

* **Agent Node**

  <figure><img src="/files/r2wN28sA83zEZzWnqm3j" alt=""><figcaption></figcaption></figure>

  * **Function**
  * &#x20; Allows invoking another pre-built agent as a node within the current workflow. This supports modular reuse of existing logic and enables hierarchical or nested workflow designs.
  * **Configurable Parameters**
    * **Agent Reference** Select or input the ID/name of the existing agent to be invoked.
    * **Input Variables** Define the variables to be passed into the referenced agent. These should match the input schema expected by that agent.
  * **Input**
  * &#x20; Receives variables from upstream nodes and passes them as input to the specified agent.
  * **Output**
  * &#x20; Returns the predefined output variables of the referenced agent. These outputs are automatically exposed for use in subsequent nodes.

**Knowledge**

<figure><img src="/files/NuhG4WNvjxdNRHaoyAT3" alt=""><figcaption></figcaption></figure>

{% columns %}
{% column width="41.66666666666667%" %}

<figure><img src="/files/uAJMShiW8dy3FKCUt0SQ" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}
**Knowledge Search Node**

* **Function**

Retrieves relevant information from a specified knowledge database based on user-defined input variables. Typically used to provide external knowledge support for downstream reasoning or generation.

* **Configurable Parameters**
  * **Knowledge Database** Select the knowledge base to search from (e.g., FAQ base, product manual, research corpus).
  * **Input Variables** Specify the variables whose values will be used as search queries.
  * **Top K** Set the maximum number of results to return from the knowledge base.
  * **Score Threshold** Define the minimum similarity score required for a result to be included.
* **Input**

Receives search query inputs (usually from upstream node outputs or user inputs), which are used to query the selected knowledge base.

* **Output**

Returns a list of relevant knowledge entries, each typically including fields like `content`, `source`, and `score`. This list is passed to downstream nodes.
{% endcolumn %}
{% endcolumns %}

***

**Tool**

* **Tool Node**

  <figure><img src="/files/jYeibZpkthK8ls41qr7t" alt=""><figcaption></figcaption></figure>

{% columns %}
{% column width="41.66666666666667%" %}

<figure><img src="/files/njIABNBJfg3Nx1iqwHoH" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

* **Function**

Enables integration of external tools within a workflow. Users can either select from built-in tools provided by the platform or use custom tools they have created. The Tool Node extends workflow capability with specialized processing.

* **Configurable Parameters**
  * **Tool Selection** Choose a tool from the built-in library or link a user-defined tool.
  * **Tool-Specific Configuration** Configuration options vary depending on the selected tool. Each tool may define its own required input variables, output structure, and runtime parameters.
* **Input**

Receives input variables required by the selected tool. These are usually mapped from upstream node outputs.

* **Output**

Returns the output as defined by the tool's specification. Output variables are exposed for use in downstream nodes.
{% endcolumn %}
{% endcolumns %}

***


# AgentFlow Editor

## Overview

**WorkFX AI** offers a streamlined and intuitive **AgentFlow editor panel** to help users build and manage intelligent agent workflows. Key features include:

* **Visual Workflow Design**: A drag-and-drop flowchart interface makes it easy to connect and organize multiple agents.
* **Flexible Collaboration Modes**: Supports peer collaboration, forced handover, and context-based delegation to build efficient multi-agent systems.
* **Tool Integration**: External tools can be linked to agents, enabling capabilities such as data processing, retrieval, or communication.
* **Knowledge Base Support**: Structured knowledge databases can be integrated to boost agents’ reasoning and comprehension capabilities.
* **Conditional Logic**: "If-this-then-that" routing rules allow for adaptive workflows based on inputs or runtime decisions.

## Settings

<figure><img src="/files/XQ7Lg051MA3HeHN9Yfg7" alt=""><figcaption></figcaption></figure>

Click the **Agent Setting** button at the top-left corner to access the Agent settings page.

<figure><img src="/files/wiSGrgin0upzL41rXI3S" alt=""><figcaption></figcaption></figure>

On this page, you can:

* Set the Agent’s avatar
* Change the Agent’s name
* Edit the Agent’s description
* Delete the Agent

## Orchestration

* **Add Nodes**

<figure><img src="/files/uiHCofEYrHOIQJaK06Og" alt=""><figcaption></figcaption></figure>

Click to open the **Node list**, then select the desired node and **drag** it onto the canvas to add it.

* **Configure Nodes**

<figure><img src="/files/fT58RfNDXK7KWOxIRsu2" alt=""><figcaption></figcaption></figure>

Click any node to open its configuration panel, where you can adjust parameters and define its behavior.

* **Link Nodes**

<figure><img src="/files/U7MY52Sl71kzQFfuFQoC" alt=""><figcaption></figcaption></figure>

Drag the connection handle on either side of a node and drop it onto the connection point of another node to establish a link between them.

* **Draft**

<figure><img src="/files/9u2XIjsVrtoeJrhmI5SQ" alt=""><figcaption></figcaption></figure>

Click **Draft** to save your changes, which will then be reflected in the preview.

* **Preview**

<figure><img src="/files/tVk1IefpbDYKVGsCtT32" alt=""><figcaption></figcaption></figure>

Click **Preview** to open the preview panel, where you can interact with your agent.

{% columns %}
{% column width="58.333333333333336%" %}

<figure><img src="/files/kxnW77nxi8akQE95pjuf" alt="" width="250"><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

As shown in the illustration, after each Draft operation, you can interact with your agent in the Preview panel for real-time testing. Key benefits include:

* The system automatically updates the preview panel to reflect the latest changes

* Directly ask questions to the agent to check answer accuracy and logic

* Easily test different scenarios to validate the agent’s responses to varied inputs

* Real-time feedback helps quickly identify issues and adjust strategies

* Improves development efficiency and overall user experience
  {% endcolumn %}
  {% endcolumns %}

* **Add Conversation Variables**

<figure><img src="/files/445mkIi271mJpUy4H96B" alt=""><figcaption></figcaption></figure>

You can click the icon in the top-right corner to configure Conversation Variables used for preview. These variables are mapped to input variables with the same names in the Start Node, allowing you to simulate different input scenarios during preview.

* **Publish**

<figure><img src="/files/CR96Up2K2f1J693FbGvg" alt=""><figcaption></figcaption></figure>

Only after clicking **Publish** will your agent be officially deployed to the production environment. The separation from Draft allows you to debug and make changes without affecting the live version, ensuring stability and reliability for users.

## Tasks

<figure><img src="/files/NZFQFhApgyYk2H8pfLbN" alt=""><figcaption></figcaption></figure>

In the **Task** panel, you can view the execution status of tasks currently triggered by this agent. Each task displays the following key information:

* **Title**
* **User**
* **Status** (e.g., Pending, Running, Completed)
* **Messages**
* **Workforce Name**
* **Update Time**

## Configuration

<figure><img src="/files/XYviey5qrSw7s22omuje" alt=""><figcaption></figcaption></figure>

In the Configuration panel, you can set the agent’s **Guide for using agent** and **welcome message** to help users better understand its purpose and how to use it effectively.

## Use Agent

<figure><img src="/files/Otg4AqKxmRqC9eRxymYe" alt=""><figcaption></figcaption></figure>

Click the **Use Agent** button to open the usage configuration panel.

<figure><img src="/files/WDRW4wqNWiZu3ZSncL0I" alt=""><figcaption></figcaption></figure>

In the "Use Agent" panel, you can choose between two usage methods:

* **URL Link Access**:
  * **Public Access**: The agent can be accessed by anyone with the link, no authorization required.
  * **Authorized Access**: Only invited users can access the agent, requiring an invitation-based authorization.
* **API Access**:\
  Integrate and invoke the agent via API. For detailed parameter configuration and usage, please refer to the **API Reference** section of the documentation.

## URL Link Access

<figure><img src="/files/QAw9xN2mm7TDOPGcfkJP" alt=""><figcaption></figcaption></figure>

This is the panel for URL-based access. Users can directly access and use the published version of the Agent via the provided link without any additional setup.


# Creation

## Ways to create an AgentFlow

WorkFX AI provides two ways to create an AgentFlow:

* Select from existing templates and clone them into your own agent
* Build one from scratch

## **Usage Example**

In the following example, we will use the creation of a travel assistant as a case to demonstrate how to create an agentflow that helps users plan their travel itineraries.

### **Open it from the "Agent" page**

<figure><img src="/files/qh1hxshyHk3TJXBVTLb1" alt=""><figcaption></figcaption></figure>

Then, go to the **Agent** page to find the "Default Chat Flow" you just cloned. Click to open and configure it.

<figure><img src="/files/848L3IL5FcuR5Wl4O2o9" alt=""><figcaption></figcaption></figure>

You will see a simple example composed of three nodes: **Start Node → LLM Node → Answer Node**This structure represents the flow starting from user input, processed by the language model, and then delivered as the final response to the user.

### **Configure the Start Node**

<figure><img src="/files/CH1NL46LSMNZ9P9T0V9S" alt=""><figcaption></figcaption></figure>

Click on the "**StartNode**" to display its configuration panel on the right. In the configuration panel, you can view the variables under the InputField section. Click "Add" to add a new input variable.

\
Here, you can configure input variables in addition to the user's original input (query). These variables are typically used for API calls, but in this case, they are not needed and can be skipped for now\.At the top, you can select the variable type. Below, you can configure the following information:

<figure><img src="/files/xnaq9CgzdqYipiTUzSCA" alt="" width="375"><figcaption></figcaption></figure>

* **Variable Name:** A unique identifier used to reference this input within the workflow.
* **Label Name: A** label name is a user-facing variable name that offers greater flexibility. It can include common special characters such as spaces,  making the interface more intuitive and user-friendly.
* **Description (Optional):** Additional information or instructions to help the user understand the purpose of this input.
* **Max Length: The** maximum number of characters allowed for this input. Used to control the size and format of the user input.

### **Configure the LLM Node**

<figure><img src="/files/boEykGvSXYsyOAPiIOLP" alt=""><figcaption></figcaption></figure>

Click the "**LLM Node**" to open the configuration panel on the right.You can select the model to use and configure some simple parameters (most of the time, the default settings are sufficient).Below, you can input the system prompt and user prompt, as well as configure the number of chat history turns to reference. Here are the parameter settings for this example:

* **Model Settings**
  * **Model:** o3-mini
  * **Temperature:** 0.7
  * **Max Tokens:** 1000
* **Chat History:** 10
* **System:**

```
#Role Definition
You are a reliable travel planning assistant. Your task is to generate a detailed travel itinerary based on online information and the user's specific needs.
```

* **User:**

```
#Info
    The user's requirements are: 
#Output
    Based on the above, please provide the following:
    Suggested travel itinerary (organized by day)
        Recommended attractions for each day (include opening hours, ticket prices, and suggested visit duration)
        Recommended local food (with restaurant names and addresses)
        Transportation suggestions (intercity and local travel)
        Accommodation suggestions (with pros and cons)
        Important tips (weather, clothing, cultural taboos, etc.)
```

<br>

### **Configure the Answer Node**

<figure><img src="/files/P6hiJSpYtJIDY0SpybEx" alt=""><figcaption></figcaption></figure>

Click the "**Answer Node"** to open the configuration panel on the right.Click the “**\</>**” button to select the output from a previous node and embed it into the final response.In this example, simply output the result from the previous LLM Node directly. As shown in the diagram, click on “**text**” under the LLM Node.

### **Try it**

\
Now, a basic AgentFlow is complete. You can try it out with the following steps:

<figure><img src="/files/848L3IL5FcuR5Wl4O2o9" alt=""><figcaption></figcaption></figure>

<figure><img src="https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=NWZhYTJjZDU0MDlmOTk5Y2RmZjk5MGJkNzc2ZmQ3NGRfam1QMXE0OHR4Y293ZHVWU000eHdDTFYyTmRiaUpERmFfVG9rZW46RnlqVWJ3am1Rb0FBTEl4SjRVV2NsWnJObjZjXzE3NDg2NzE5Mzk6MTc0ODY3NTUzOV9WNA" alt=""><figcaption></figcaption></figure>

1. Click "**Draft**" to save the current flow.
2. Click "**Preview**" to test how this AgentFlow works.
3. Enter your travel requirements in the input box below, and the AgentFlo\w will begin to run, generating a simple travel guide.

<figure><img src="/files/juRqXESlRg3xYdvhpS4D" alt=""><figcaption></figcaption></figure>


# Flow Tools

## Introduction

**Flow Tools** are tools used to build and manage intelligent agent workflows, allowing developers to define multi-step task processes through visual interfaces or code. These workflows can include calling external APIs, processing data, executing logical decisions, and more, ultimately forming a complete automated task chain.

* **Visual Workflow Design**: Users can intuitively design each step and logic of the workflow via a drag-and-drop interface.
* **Multi-step Task Chains**: Supports defining multiple sequential or parallel task steps to implement complex business logic.

## Create a Flow Tool

<figure><img src="/files/kbdvhzLSxzeAotWMFceW" alt=""><figcaption></figcaption></figure>

First, select the **Tool** panel. Here, you can choose either **Create From Blank** or **Create From Template**. In this example, we’ll go with the first option — **Create From Blank**.

<figure><img src="/files/jb8b1j7kRaAp1ikvVVYb" alt=""><figcaption></figcaption></figure>

After clicking **Create**, you will be redirected to the **Tool Creation Panel**, where you need to configure the following information:

* **Avatar**\
  The icon or image representing your tool. This helps visually identify the tool in the interface.
* **Name**\
  The internal name of the tool. **Tool name can only contain letters, numbers, and underscores** (e.g., `my_custom_tool`). This name is used programmatically and must follow naming rules.
* **Display Name**\
  The name shown to users, such as when the tool is used by an agent. **There are no restrictions on characters**, so you can use spaces, symbols, or non-English characters if needed (e.g., `My Custom Tool`).
* **Description**\
  A brief explanation of what the tool does. This helps others (and yourself) understand the purpose of the tool at a glance.
* **Create Tool Type**\
  Choose the type of tool to create.

<figure><img src="/files/GwOyUyAO3B7cO7ry6wiq" alt=""><figcaption></figcaption></figure>

After clicking **Create** in the creation panel, you will be redirected to the **Flow Tool Orchestration** panel. Here, you can customize your tool using a variety of powerful nodes—almost the same as in AgentFlow.

## Flow Tool Example

The following presents a simplified **Enhanced Knowledge Search Flow Tool** along with its implementation method. This tool&#x20;

<figure><img src="/files/vsRsKjBeA4C9mGKPRzuA" alt=""><figcaption></figcaption></figure>

This flow tool, aside from the start and end nodes, uses only two core components:

An LLM node for extracting the query, and a knowledge search node for retrieving information from the WorkFX

<div align="center"><figure><img src="/files/x0i9E1l5kfJUo6Eed0qn" alt=""><figcaption></figcaption></figure></div>

The configuration of the LLM node is shown above. Users are free to customize it to enable more complex functionalities; this setup is for demonstration purposes only. The blue text indicates a reference to the query from the start node, which serves as the default input for the tool.

<figure><img src="/files/fJJqYmBpd0grOcgTEXYf" alt=""><figcaption></figcaption></figure>

The configuration of the Knowledge Search node includes the following:

* **Knowledge Selection**: Choose one or more knowledge sources to define the search scope. In this example, the *WorkFX* introduction document is selected.
* **Search Parameters**: Configure the following parameters:
  * **TopK**: Specifies the number of top relevant results to return.
  * **Score Threshold**: Sets the minimum relevance score required for results to be considered.
* **Enhanced Domain Mode**:

  * Optional feature;
  * Improves retrieval performance when enabled;
  * May result in slower responses and higher computational cost;
  * Not enabled in this example.

  <figure><img src="/files/XRzCWz9CmBqL5XGg1mRr" alt=""><figcaption></figcaption></figure>

In the End Node, select the `text` output from the **Knowledge Search node** as the final output

* This will pass the retrieved text to the user or downstream processes.


# Tools

**Tools** are specialized functional components that extend an agent's capabilities beyond language processing. They act as the interface between AI models and external systems, enabling agents to perceive, interact with, and manipulate the real world.

## What Are Tools?

> **Core Role: Tools serve as the bridge between large AI models (such as intelligent agents) and the real world.** Through Tools, agents can not only understand and process information but also interact with external systems, data sources, and the physical world, achieving a complete "perception-action" loop that transforms passive language models into active, capable agents.

In the agent ecosystem, tools are essential components that:

* **Extend Capabilities**: Enable agents to perform actions beyond text generation
* **Connect Systems**: Bridge the gap between AI models and external services
* **Enable Interaction**: Allow agents to read, write, and manipulate data across platforms
* **Provide Specialization**: Offer domain-specific functionality for targeted use cases

## Types of Tools

Our platform supports multiple types of tools, each designed for different use cases and integration patterns:

### [Flow Tools](/workfx-companion-agent-knowledge/workforce-factory/agent/flow-tools)

Tools built through visual process flows, ideal for scenarios requiring multiple steps, conditional logic, and data transfer.

* **Use Cases**: Automated approval workflows, data cleansing processes, multi-step business logic
* **Benefits**: Visual design, complex logic handling, easy maintenance

### [API Tools](/workfx-companion-agent-knowledge/workforce-factory/tools/api-tools)

Tools integrated via REST APIs, perfect for connecting with external systems and enabling data exchange.

* **Use Cases**: Third-party service integration, system-to-system communication, real-time data access
* **Benefits**: Wide compatibility, standard protocols, real-time connectivity

### [MCP Tools](/workfx-companion-agent-knowledge/workforce-factory/tools/mcp-tools)

Tools based on the Model Context Protocol (MCP), designed for advanced AI integrations and standardized communication.

* **Use Cases**: AI model integration, context-aware operations, standardized AI workflows
* **Benefits**: Protocol standardization, enhanced AI capabilities, seamless integration

### [Built-in Tools](/workfx-companion-agent-knowledge/workforce-factory/tools/built-in-tools)

Pre-built tools provided by the platform, ready to use for common business and technical needs.

* **Use Cases**: Web scraping, database operations, file processing, search functionality
* **Benefits**: Immediate availability, tested reliability, optimized performance

## What Can Tools Do?

Tools enable agents to perform a wide range of operations:

* **Data Collection & Processing**: Web scraping, data cleansing, format conversion
* **External System Integration**: API calls, database operations, file system access
* **Automated Task Execution**: Batch operations, scheduled tasks, workflow automation
* **Information Retrieval & Analysis**: Full-text search, data analysis, intelligent recommendations
* **Communication & Notification**: Email sending, message posting, alert systems
* **Content Creation & Manipulation**: Document generation, image processing, data visualization

## Documentation Overview

This section covers everything you need to know about tools:

* [**Usage of Tools**](/workfx-companion-agent-knowledge/workforce-factory/tools/usage-of-tools) - Basic concepts and implementation guide
* [**Flow Tools**](/workfx-companion-agent-knowledge/workforce-factory/agent/flow-tools) - Visual workflow-based tools
* [**API Tools**](/workfx-companion-agent-knowledge/workforce-factory/tools/api-tools) - REST API integration tools
* [**Built-in Tools**](/workfx-companion-agent-knowledge/workforce-factory/tools/built-in-tools) - Platform-provided tools
* [**MCP Tools**](/workfx-companion-agent-knowledge/workforce-factory/tools/mcp-tools) - Model Context Protocol tools

***

Tools are the foundation that transforms static AI models into dynamic, capable agents. By understanding and effectively utilizing the different types of tools available, you can create powerful automation workflows and intelligent systems that interact seamlessly with your existing infrastructure.


# API Tools

## Introduction

API Tools are a set of interfaces and helper utilities designed specifically for intelligent agents to call external services, retrieve data, or perform various tasks. They enable agents to automate operations and enhance their capabilities and flexibility.

* **Invoke external APIs**: Allow agents to access third-party or internal APIs for data querying, writing, and more.
* **Unified interface management**: Standardize and manage all API requests centrally for easier maintenance and scalability.
* **Parameter validation and formatting**: Automatically verify parameters and support necessary format conversions.
* **Asynchronous calls and error handling**: Improve call efficiency and handle exceptions gracefully.

## Creation

<figure><img src="/files/kbdvhzLSxzeAotWMFceW" alt=""><figcaption></figcaption></figure>

First, select the **Tool** panel. Here, you can choose either **Create From Blank** or **Create From Template**. In this example, we’ll go with the first option — **Create From Blank**.

<figure><img src="/files/ZRHqgjn88GnqZgDdNY3l" alt=""><figcaption></figcaption></figure>

After clicking **Create**, you will be redirected to the **Tool Creation Panel**, where you need to configure the following information:

* **Avatar**\
  The icon or image representing your tool. This helps visually identify the tool in the interface.
* **Name**\
  The internal name of the tool. **Tool name can only contain letters, numbers, and underscores** (e.g., `my_custom_tool`). This name is used programmatically and must follow naming rules.
* **Display Name**\
  The name shown to users, such as when the tool is used by an agent. **There are no restrictions on characters**, so you can use spaces, symbols, or non-English characters if needed (e.g., `My Custom Tool`).
* **Description**\
  A brief explanation of what the tool does. This helps others (and yourself) understand the purpose of the tool at a glance.
* **Create Tool Type**\
  Choose the type of tool to create.

<figure><img src="/files/ktYM9lugbHHEwb3KSKk1" alt=""><figcaption></figcaption></figure>

When creating an API Tool, you need to additionally configure some properties:

### API Schema

You can provide the OpenAPI specification in either JSON or YAML text format.\
Here is a sample JSON for a library API:

```json
{
  "openapi": "3.0.3",
  "info": {
    "title": "Library API",
    "version": "1.0.0",
    "description": "Manage books and authors in a library system"
  },
  "servers": [
    {
      "url": "https://api.library.example.com/v1",
      "description": "Production server"
    }
  ],
  "paths": {
    "/books": {
      "get": {
        "summary": "List all books",
        "operationId": "listBooks",
        "responses": {
          "200": {
            "description": "A list of books",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": { "$ref": "#/components/schemas/Book" }
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Add a new book",
        "operationId": "createBook",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": { "$ref": "#/components/schemas/BookInput" }
            }
          }
        },
        "responses": {
          "201": { "description": "Book created successfully" },
          "400": { "description": "Invalid input" }
        }
      }
    },
    "/books/{bookId}": {
      "parameters": [
        {
          "name": "bookId",
          "in": "path",
          "required": true,
          "schema": { "type": "integer", "format": "int64" }
        }
      ],
      "get": {
        "summary": "Get a book by ID",
        "operationId": "getBook",
        "responses": {
          "200": {
            "description": "Book details",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/Book" }
              }
            }
          },
          "404": { "description": "Book not found" }
        }
      },
      "delete": {
        "summary": "Delete a book",
        "operationId": "deleteBook",
        "responses": {
          "204": { "description": "Book deleted" },
          "404": { "description": "Book not found" }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Book": {
        "type": "object",
        "required": ["id", "title", "author"],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "example": 101
          },
          "title": {
            "type": "string",
            "example": "The Great Gatsby"
          },
          "author": {
            "type": "string",
            "example": "F. Scott Fitzgerald"
          },
          "publishedDate": {
            "type": "string",
            "format": "date",
            "example": "1925-04-10"
          }
        }
      },
      "BookInput": {
        "type": "object",
        "required": ["title", "author"],
        "properties": {
          "title": { "type": "string" },
          "author": { "type": "string" },
          "publishedDate": {
            "type": "string",
            "format": "date"
          }
        }
      }
    }
  }
}
```

***

### Authorization Type

You can select either **None** or **API-Key**.\
If you choose **API-Key**, you need to configure the following two properties to specify the header name and the corresponding API key value:

* **Header**\
  The name of the header where the API key should be sent (e.g., `Authorization` or `x-api-key`).
* **API Key**\
  The actual API key value used for authentication.

<figure><img src="/files/tXj1uOF7qTsAoSi3nlrP" alt=""><figcaption></figcaption></figure>

After successfully configuring the properties and creating the tool, you will be redirected to the **API Tool** panel. Here, you can review the imported **API Endpoints** and modify the OpenAPI schema at any time — simply edit the text above, and your changes will be saved automatically.


# MCP Tools

## Introduction

**MCP Tools** are core components of the **Model Context Protocol (MCP)**, designed to enable AI agents to call external functions or services through standardized interfaces.

* **Function Exposure**: Encapsulate external services or functions as tools, allowing AI agents to call them through standardized interfaces.
* **Context Sharing**: Allow Agents to carry context information when calling tools, enabling more intelligent interactions.
* **Task Collaboration**: Support the combination of multiple tools to help AI agents complete complex tasks.

## Creation

<figure><img src="/files/kbdvhzLSxzeAotWMFceW" alt=""><figcaption></figcaption></figure>

First, select the **Tool** panel. Here, you can choose either **Create From Blank** or **Create From Template**. In this example, we’ll go with the first option — **Create From Blank**.

<figure><img src="/files/82GZWWuPbyOs703LU87Z" alt=""><figcaption></figcaption></figure>

After clicking **Create**, you will be redirected to the **Tool Creation Panel**, where you need to configure the following information:

* **Avatar**\
  The icon or image representing your tool. This helps visually identify the tool in the interface.
* **Name**\
  The internal name of the tool. **Tool name can only contain letters, numbers, and underscores** (e.g., `my_custom_tool`). This name is used programmatically and must follow naming rules.
* **Display Name**\
  The name shown to users, such as when the tool is used by an agent. **There are no restrictions on characters**, so you can use spaces, symbols, or non-English characters if needed (e.g., `My Custom Tool`).
* **Description**\
  A brief explanation of what the tool does. This helps others (and yourself) understand the purpose of the tool at a glance.
* **Create Tool Type**\
  Choose the type of tool to create.

## MCP API Schema

The following example illustrates the standard format used in the MCP API Schema to configure the Server-Sent Events (SSE) endpoint for event push notifications:

```
https://actions.zapier.com/mcp/sk-ak-##########################/sse
```

* You only need to provide the **full SSE endpoint URL** directly.
* Clients can establish a connection to this URL to receive real-time event streams from the MCP platform, such as agent status updates or flow execution feedback.

## Configuration

<figure><img src="/files/pxy9JMnY7mAZV3SwMLPr" alt=""><figcaption></figcaption></figure>

After the creation is completed, you will be redirected to the configuration page of this MCP tool. You can always open this page again by selecting the MCP tool from the tool list. Here you can:

* Modify the URL of this MCP tool
* Test each service provided by this URL

{% hint style="info" %}
You can refer to the following guide on how to create an MCP server and obtain this URL:<https://help.zapier.com/hc/en-us/articles/36265392843917-Use-Zapier-MCP-with-your-client>
{% endhint %}


# Built-in Tools

## Introduction

Built-in Tools are pre-designed tools that agents can use directly without any editing or customization. These tools come with predefined functionalities and interfaces, enabling quick and stable integration into agent workflows.

* **Predefined Functionality**: Built-in tools have fixed features and behaviors designed by the product team.
* **Ready to Use**: Agents can invoke these tools immediately without extra configuration or setup.
* **No Editing Supported**: Users cannot modify or customize the internal logic or parameters of built-in tools.
* **Reliable and Stable**: Controlled and tested by the product, ensuring consistent performance.

## Serp Google Search

<figure><img src="/files/xQNRWOOpruOfBMROQ2Ok" alt=""><figcaption></figcaption></figure>

### **Overview**

Serp Google Search is a built-in tool that enables agents to access real-time Google search results. It handles proxy management, CAPTCHA solving, and parses rich structured data, providing seamless and accurate search experiences.

### **Key Features**

* Real-time access to the latest search results
* Extraction of rich snippets such as links, addresses, prices
* Automatic CAPTCHA handling for uninterrupted queries

**Use Cases**

* SEO analysis
* News monitoring
* Price tracking
* Market research

## Tavily Search

<figure><img src="/files/gGza81hv7yA0kC1dL7ef" alt=""><figcaption></figcaption></figure>

### **Overview**

Tavily Search is a search engine designed specifically for AI agents, delivering real-time, accurate, and unbiased results. It aggregates information from multiple data sources to help agents quickly find relevant information.

### **Key Features**

* Real-time, up-to-date search results
* Aggregation across diverse data sources
* Optimized for AI agent integration

### **Use Cases**

* Research assistance
* Data aggregation
* Information retrieval

## Wikipedia Search

<figure><img src="/files/w8r2MvdRJzi0QgF5H7ed" alt=""><figcaption></figcaption></figure>

### **Overview**

Wikipedia Search is a built-in tool allowing agents to query Wikipedia entries, retrieve authoritative content, and generate summaries. It supports full article access and content extraction.

### **Key Features**

* Search and retrieve relevant Wikipedia articles
* Generate concise article summaries
* Access full page content for detailed information

### **Use Cases**

* Knowledge retrieval
* Educational applications
* Content summarization

## ECharts Visualization

<figure><img src="/files/8zL5d21oEOGvOdH1O41s" alt=""><figcaption></figcaption></figure>

### **Overview**

ECharts Visualization is a built-in data visualization tool leveraging Apache ECharts. It enables agents to create interactive, customizable charts such as line, bar, and pie charts, supporting large dataset rendering.

### **Key Features**

* Interactive chart types including line, bar, pie, and more
* Highly customizable visual options
* Efficient rendering for big data sets

### **Use Cases**

* Data analysis
* Dashboard creation
* Business intelligence visualization

## HTML Report

<figure><img src="/files/5wNXydVH7yBnEqS2Y2G9" alt=""><figcaption></figcaption></figure>

### **Overview**

HTML Report is a built-in tool that allows agents to generate structured reports in HTML format. It supports customizable templates and easy integration, facilitating report sharing and presentation.

### **Key Features**

* Generate detailed, formatted HTML reports
* Support for various customizable templates
* Seamless integration with other tools and data sources

### **Use Cases**

* Test and performance reporting
* Project documentation
* Data presentation and sharing


# Usage of Tools

### **Use Tools**

You can use the **tools templates** provided by WorkFX AI, or create and use your own **custom tools**. Additionally, the system includes a set of commonly used **built-in tools** that are readily available for use.

* **Use Tools in AgentFlow**

  <figure><img src="/files/U9VK5EzdUgpFCjwZT9CW" alt=""><figcaption></figcaption></figure>

  * Click the “**Add Node**” button on the AgentFlow canvas.
  * Select **“Tools Node”**.
  * In the configuration panel on the right, choose the tool you want to use.
  * Configure the corresponding parameters and settings for the tool.
  * Save the configuration to complete adding the node.

* **Use Tools in Prompt-Based Agent**

  <figure><img src="/files/0GMNQCBiidMTPT3d9eSI" alt=""><figcaption></figcaption></figure>

  * Open the configuration panel of the **Prompt-Based Agent**.
  * Locate the **“Tools”** section in the left navigation panel.
  * Click the **“Add”** button to add a new tool.
  * In the pop-up tool selection dialog, choose the desired tool.
  * Return to the Agent configuration panel and toggle the switch next to the newly created tool to enable it.


# Multi-Agent

**Multi-Agent** systems in Workforce Factory enable you to orchestrate multiple specialized agents to collaboratively solve complex tasks through intelligent coordination and delegation. Unlike single agents that handle tasks independently, multi-agent systems leverage the combined expertise of multiple agents to achieve outcomes that exceed individual agent capabilities.

## Overview

Multi-Agent systems in Workforce Factory provide two primary orchestration patterns:

* **Supervisor-Managed**: A supervisor agent autonomously coordinates and delegates tasks to specialized worker agents based on their expertise
* **Manual Orchestration**: Individual agents function as nodes in a workflow, giving you direct control over task routing and data flow

## Key Components

### Supervisor Architecture

The supervisor acts as an intelligent coordinator that:

* Analyzes incoming requests and breaks them into sub-tasks
* Selects appropriate worker agents based on their specializations
* Delegates tasks autonomously without manual intervention
* Aggregates results from multiple agents into cohesive responses

### Agent Nodes

Published agents can be imported as individual nodes, allowing you to:

* Maintain manual control over task execution flow
* Configure specific input parameters for each agent
* Build complex workflows that combine multiple specialized agents
* Create deterministic processes with predictable outcomes

## When to Use Multi-Agent

Multi-agent systems are ideal for:

* **Complex Problem Solving**: Tasks requiring multiple areas of expertise (research + analysis + reporting)
* **Parallel Processing**: Independent sub-tasks that can be executed simultaneously by different agents
* **Specialized Workflows**: Processes where different agents excel at specific types of work
* **Scalable Operations**: Systems that need to adapt based on workload complexity


# Supervisor

## Supervisor Node

As the agent responsible for managing the overall workflow and delegating tasks to appropriate worker agents, the Supervisor maintains an organizational structure known as the **Supervisor Group**.

To ensure the Supervisor functions properly, users need to add other published agents into the **Orchestration** system and assign them to the **Supervisor Group** of the corresponding **Supervisor Node**.

<figure><img src="/files/VI1j2nbP5b94VCqCacya" alt=""><figcaption></figcaption></figure>

* This setup enables the Supervisor Node to freely invoke these agents as needed, facilitating efficient task delegation and collaboration.
* Multiple agents can be added to enhance the Supervisor’s capabilities; however, the number should be kept reasonable to avoid excessive complexity in management and coordination.
* Furthermore, each agent should be capable of independently completing a specific unit of work, ensuring task execution is both efficient and precise.

## Supervisor Prompt

By default, the Supervisor Prompt is designed to guide the supervisor agent to analyze user requests, break them down into multiple sub-tasks, and assign these sub-tasks to worker agents with relevant expertise. Below is a sample default prompt:

You are an intelligent assistant capable of using predefined tools to answer user queries or execute actions.

```
You are an intelligent assistant capable of using predefined tools to answer user queries or execute actions.

When handling user requests, always follow these steps:

Understand User Intent:
Clearly identify the user's goal and extract relevant details from their query.

Select Appropriate Tool:
From your available set of tools, select the one that best matches the user's needs.

Construct a Function Call:
Create a JSON-formatted function call specifying the function name and required parameters accurately.

Process the Response:
Once the function executes, use the returned information to craft a clear, natural-language response for the user.

Make sure you provide correct parameters in the function call and clearly communicate the results returned by the function.
```


# Agent Node

## Agent Node

In a Multi-Agent, any of your **published Agents** can be imported into the orchestration as a node and used as a reusable module.

<figure><img src="/files/CQMNLEqGm9wdFfJAZRx3" alt=""><figcaption></figcaption></figure>

As shown in the figure above, each **Agent Node** corresponds to a **single Agent**. You can configure the required input variables and user query for the selected agent within the node, and make use of its output accordingly.


# Creation

## Start Creating

<figure><img src="/files/v3eCFdgccJIiaYtog0yK" alt=""><figcaption></figcaption></figure>

Navigate to the **Multi-Agent** tab and click **"Create From Blank"**. Enter a name and description, then click **"Create"** to complete the basic setup.

## Add Agents to Supervisor Group

<figure><img src="/files/actm52QGGIWez1ajoiEx" alt=""><figcaption></figcaption></figure>

Click on the **Supervisor Node** or its **group**, then select the Agents you need from the list.

> These **Agents** will be autonomously invoked by the Supervisor and will complete tasks according to the Supervisor's prompt.

> These  **Agents** are system-controlled and do not support manual configuration.

## Add Agent Nodes

<figure><img src="/files/wC4QRvpmWf6oiGIAI6HH" alt=""><figcaption></figcaption></figure>

If you prefer to use an **Agent** in a more controlled manner, you can locate the agent node in the node list and import it. It will then function as a standalone node, **independent of the Supervisor**, and you will need to manually configure its input parameters.

## Other Configuration

Apart from the aforementioned methods of referencing agents, other configurations in **Multi-Agent** are the same as those in **AgentFlow**. Please refer to the relevant sections of AgentFlow for details.


# Configuration Management


# Versioning

### What is Versioning?

Versioning helps you track and manage changes to an Agent configuration over time.

In WorkfxAI:

* **Draft** is your working copy (editable).
* **Versions** are immutable snapshots created when you **Publish**.
* You can **Restore** any version back into your current Draft.
* You can **Export Config** for a specific version to get its DSL (YAML) for auditing, backup, or migration.

***

### Key Concepts

#### Draft (single editable workspace)

* Each Agent has **exactly one Draft** at any time.
* Draft is where you edit:
  * prompts/instructions
  * workflows (ChatFlow / JobFlow)
  * tools and tool parameters
  * variables and bindings
  * model settings
  * other configuration

> Think of Draft as “the current working state”.

#### Published Version (immutable snapshot)

* Every time you **Publish**, WorkfxAI creates a new **Version**.
* Versions are **read-only snapshots** of your Agent configuration at the time of publishing.
* Versions give you:
  * traceability (what changed, when)
  * rollback options
  * stable checkpoints for production use

***

### How Publishing Creates Versions

When you click **Publish**:

1. WorkfxAI validates your configuration (based on your Agent type).
2. A **new Version** is created and added to **Version History**.
3. Your “latest published version” updates.

<figure><img src="/files/3cshcOh2iutwAI0A5iOQ" alt=""><figcaption></figcaption></figure>

***

### Version History UI (Versions Panel)

In the Versions panel, you can typically:

* See the list of versions with timestamps
* Identify the **Latest** version
* Open a version menu (⋯) for actions

<figure><img src="/files/YItuvJKUK6bgR0T6Lu5o" alt=""><figcaption></figcaption></figure>

***

### Restore: Put a Historical Version Into Current Draft

**Restore** copies the selected Version’s configuration into your current Draft.

#### What Restore does

* Replaces your current Draft configuration with the selected Version’s configuration.
* Lets you safely roll back, experiment, or recover a known-good state.

#### What Restore does *not* do

* It does **not** publish automatically.
* It does **not** modify the historical Version.
* It does **not** delete other versions.

#### Typical workflow

1. Choose a version in Version History
2. Click **Restore**
3. Confirm the Draft now matches that version
4. Optionally adjust the Draft
5. Click **Publish** to create a new version

📌 Best practice: After Restore, **Publish** to create a new version so you have a clear “rollback + republish” checkpoint.

### Export Config: Export DSL for a Specific Version

**Export Config** exports the selected version’s configuration as **DSL (YAML)**.

Use Export Config when you want:

* a backup of a known-good release
* an audit artifact (exact released configuration)
* to migrate/copy configuration into another workspace
* to compare changes between versions in Git

<figure><img src="/files/We8vxSyFdL3M1KwgI5bi" alt=""><figcaption></figcaption></figure>

***

### Draft vs Version Export (Important)

Depending on your UI, you may have export entry points in two places:

* **Export as DSL (from editor)** → exports the **current Draft**
* **Export Config (from Versions panel)** → exports a **specific published Version**

This difference matters for compliance and reproducibility:

* Draft can be mid-edit
* Versions are immutable and reflect released state

***

### Common Workflows

#### Workflow A: Safe iteration and rollback

1. Make changes in Draft
2. Publish → creates Version
3. If issues occur → Restore previous Version
4. Publish again → creates a new “rollback” Version

#### Workflow B: Export a released configuration

1. Open Versions panel
2. Select the release you want
3. Export Config → save the DSL

#### Workflow C: Audit a change

1. Export Config for Version A and Version B
2. Compare the two YAML files in Git

***

### FAQ

#### Does Restore overwrite my current Draft?

Yes. Restore replaces the current Draft configuration with the selected version’s configuration.

#### Can I have multiple Drafts?

No. Each Agent has one Draft.

#### Is every Version published?

Yes—Versions are created on Publish.

###


# DSL

### What is DSL?

DSL is a **YAML configuration format** that represents an Agent’s full setup, including (depending on type):

* metadata (name, description, tags, icon)
* prompts / instructions
* flows (ChatFlow / JobFlow)
* tools and tool parameters
* variables and bindings
* model configuration
* optional capabilities (e.g., file upload, voice)

DSL enables “configuration as code”:

* easy backups
* easy replication across workspaces
* reviewable changes in Git
* shareable templates inside your team

***

### Where You Can Use DSL

#### 1) Create from DSL (Agent & Multi-Agent)

When creating a new Agent (or Multi-Agent), you can choose **Create from DSL** to bootstrap everything from a YAML file.

<figure><img src="/files/RERHTzEGdTYXvW7shCMv" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/cUImz6fzcEmIy5UN0yum" alt=""><figcaption></figcaption></figure>

#### 2) Export DSL (Draft)

From the Agent editor, you can export the **current Draft** as DSL.

![](/files/jnFLkPviQ8pYVvSXetuB)

#### 3) Export Config (Published Version)

From **Version History**, you can export DSL for **a specific published Version** using **Export Config**.

![](/files/qIeg3LMlraxe8uzEOXNb)

#### 4) Import DSL (into an Agent)

You can import a DSL file to load configuration into an Agent.

📌 **Important:** Depending on your product behavior, importing may:

* overwrite the current Draft, or
* create a new Agent from the DSL

> In this doc, label the behavior exactly as your UI works.\
> If import overwrites Draft, say it explicitly.

![](/files/omCcr28rYrqKDJxB17WU)

***

### Supported Agent Types

DSL supports:

* **Instruction Agents** (system prompt + tools + variables)
* **ChatFlow Agents**
* **JobFlow Agents**
* **Multi-Agents**

The DSL `kind` field indicates which type it represents (examples below).

***

### DSL Structure Overview

#### Top-level fields

Most DSL files follow this structure:

* `kind`: the resource type (e.g., `instruction`, `chatflow`, `jobflow`, `multi-agent`)
* `version`: DSL schema version (e.g., `1.0.0`)
* `metadata`: identity and display info (name, description, icon, tags, timestamps)
* `spec`: the functional definition (prompts, flows, nodes, etc.)
* `model_config`: model/provider and generation parameters
* `tools`: enabled tools and their parameter schemas/settings
* optional: `abilities`, `datasets`, `extend_properties` (platform-dependent

***

### Create from DSL (Step-by-step)

1. Go to **Workforce Factory → Agent** (or **Multi-Agents**)
2. Click **Create from DSL**
3. Paste or upload your DSL YAML
4. Confirm → the system creates an Agent with:
   * prompts/flows
   * tools
   * variables
   * model config
5. Review the created Draft
6. Publish when ready

<figure><img src="/files/bMPDro4HL1OjUOz7TRCL" alt=""><figcaption></figcaption></figure>

***

### Export DSL (Draft)

Use this when you want to:

* backup work-in-progress
* share a configuration with teammates
* commit configuration to Git for review

**Steps**

1. Open the Agent editor
2. Click **Export as DSL** (or equivalent)
3. Save the YAML file

📌 Reminder: this exports the **current Draft** (which may not be published yet).

***

### Export Config (Version) — For Auditing & Releases

Use **Export Config** from Version History when you want a DSL file that represents an **immutable released snapshot**.

**Steps**

1. Open the Agent editor
2. Open **Versions** panel
3. Choose a version → click ⋯ → **Export Config**
4. Save the YAML file

This is the best option for:

* compliance
* production reproducibility
* release backups

***

### Import DSL (Step-by-step)

**Steps**

1. Open an Agent editor (or creation page, depending on UI)
2. Click **Import DSL**
3. Paste/upload YAML
4. Confirm import

📌 **Behavior to document clearly (choose the one that matches your UI):**

* **Option A — Import overwrites Draft:** Import replaces your current Draft configuration.
* **Option B — Import creates a new Agent:** Import generates a new Agent and leaves the original untouched.

<figure><img src="/files/xIzPY8n8r4doTm5VhFlR" alt=""><figcaption></figcaption></figure>

***

### Best Practices

#### Keep DSL in source control

Store exported DSL files in Git to:

* track changes over time
* review with PRs
* compare version snapshots

#### Use Version export for production baselines

For production releases, export from **Versions → Export Config** so the artifact matches the published state.

#### Avoid secrets in DSL

Do not store API keys or secrets in plaintext DSL files.

* Use workspace secrets / credentials management (if available)
* Reference secrets by name/ID instead of embedding values (recommended)

#### Watch for portability differences

When importing DSL into another workspace:

* tool availability may differ
* knowledge bases/datasets may not exist
* icon URLs must be accessible
* referenced agents/resources may need remapping

***

### Troubleshooting

#### Import fails due to schema mismatch

* Check `version` field in DSL
* Export a fresh DSL from a working agent and compare structure

#### Tools missing after import

* Confirm the destination workspace has the same tools enabled
* Check tool parameter schemas (required fields)

#### Variables not bound correctly

* Ensure variable keys match the placeholders used in prompts/flows
* Rebind variables in the editor if needed

***


# Workfx QA Agent

In this section, we introduce a representative use case featuring a simple Agent Flow designed specifically for Workfx-related questions. Key points include:

* The agent **receives user input** in the form of questions.
* It **performs targeted retrieval** from the Workfx introduction document using a predefined knowledge search process.
* The agent **generates relevant answers** based strictly on retrieved content.
* The system is **restricted to a single domain** to ensure all responses align with Workfx’s official documentation.

## Overview of Flow Structure

<figure><img src="/files/nvfusuOj1ESp4izxfjAm" alt=""><figcaption></figcaption></figure>

The execution logic of this flow is as follows:

* **Question Classifier Node**\
  The flow begins by determining whether the user’s question is related to Workfx.
* **Workfx-Related Questions**
  * If the question is relevant to Workfx, the system invokes the **knowledge search tool** defined in the “Tool-Flow Tool” section;
  * The tool performs retrieval and returns related content;
  * The agent then generates a natural language response based on the retrieved result.
* **Unrelated Questions**

  * If the question is not related to Workfx, a **Code Node** is used to return a fixed message such as:\
    *“Sorry, I can only answer questions related to Workfx.”*

## **Question Classifier Node**

<div data-full-width="false"><figure><img src="/files/jCznQz87ivK9MvwcRy03" alt=""><figcaption></figcaption></figure></div>

**Model Configuration**

* **Model**: `gpt-4o-mini`

**Chat History**

* **Input Variable**: `"User Query"`&#x20;

**Classes**

* **CLASS 1**: Questions about Workfx Introduction
* **CLASS 2**: Questions having nothing to do with Workfx Introduction

## **Tool Node**

<figure><img src="/files/rDqwKQhe6gfexkx93v3k" alt=""><figcaption></figcaption></figure>

### **Tool Metadata**

* **Name**: Knowledge Base Search Tool for Workfx
* **Description**: Introduction KB Search Tool

### &#x20;**Tool Selection**

* **Selected Tool**: `Workfx Introduction KB Search Tool`&#x20;

### **Tool Parameters**

* **Query Prompt**: `</> system.query`&#x20;

the user's original input (`User Query`) is passed directly to the knowledge search tool as the query parameter, without any additional processing or intermediate transformation.

## **Code Node**

<figure><img src="/files/8LnXZYVuvee3oVagC06m" alt=""><figcaption></figcaption></figure>

**Configuration**

* **Input Variables**: None (the node operates independently)
* **Output Field**: `result`
* **Function**: Outputs a fixed message when the question is unrelated to WorkFX, informing the user that the system cannot respond.

**Output Code Logic**

```python
def main() -> dict:
    return {
        "result": "Sorry, this question is not related to WorkFX, so I can't answer it."
    }
```

## **LLM Node**

<figure><img src="/files/NuY0zRhDhoRI6Oqq9WJ9" alt=""><figcaption></figcaption></figure>

### **Prompt Template**

This prompt guides the LLM to generate an answer based on the retrieved content from the tool:

```
{{#tool-1751255820523.text#}}
Here is some information about WorkFX.
Based on this information, please answer the following question.
{{#system.query#}}
```

* Line 1: Inserts the content returned by the knowledge search tool (`text` field)
* Line 2: Provides context that the answer should be based on that information
* Line 3: Inserts the original user query (`system.query`)

### **Output Variable**

* `final_answer` (or the default output field used by the platform)

### **Input Variables**

* Implicitly bound:
  * `tool-1751255820523.text` (from the knowledge tool)
  * `system.query` (user input)

## **Answer Node**

The final answer in this flow comes from one of two sources:

### **LLM Node Output – For Related Questions**

* **Source**: LLM Node
* **Output Field**: `final_answer`
* **Condition**: Used when the question is related to WorkFX
* **Logic**:
  * Read the generated answer from the LLM Node (`final_answer`)
  * Set it as the response output from the End Node

### **Code Node Output – For Unrelated Questions**

* **Source**: Code Node
* **Output Field**: `result`
* **Condition**: Used when the question is not related to WorkFX
* **Logic**:
  * Read the predefined message from Code Node (`result`)
  * Set it as the response output from the End Node


# Search Agent

In this section, we will create a Search Agent Flow with the goal of encapsulating and automating search operations. This agent can integrate multiple built-in tools such as:

* Serp Google Search
* Tavily Search
* Wikipedia Search

By leveraging these tools, the Search Agent can automatically perform web searches based on user input and return structured results for downstream use or display.\
We will demonstrate this using both a **flow-based agent** and an **instruction-based agent**, allowing you to understand and compare their differences in structure and behavior.

## Implementation Method for Flow-based Agent

### Overview of Flow Structure

<figure><img src="/files/NhWN5Tsc412mKlqRZedu" alt=""><figcaption></figcaption></figure>

### Tool Node

{% columns %}
{% column %}

<figure><img src="/files/ogfkbsqr8XXU0GgsCXC6" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="/files/4eQWLLMUL8kYk1rL5dKY" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

Both built-in tools—Serp Google Search and Tavily Search—only require the user's input `query` to be passed in directly, without any additional processing or variable transformation.

### Answer Node

<figure><img src="/files/P08PSshBdxIhG4KjTlSF" alt=""><figcaption></figcaption></figure>

The End Node receives results from both the Serp and Tavily search tools and combines them into a single unified output for the user.

## Implementation Method for Instruction-based Agent

Since search-related tools are relatively simple to use, an **Instruction-based Agent** can be employed. This agent is capable of autonomously selecting the appropriate search tool to retrieve relevant information and further processing the results before generating an output.

### Prompt

```
You will be given a user query.

Your task is to call both the Serp Google Search tool and the Tavily Search tool using this query as input.

Once both tools return results, summarize and consolidate the key information from both sources into a single, cohesive summary.

⚠️ Do NOT directly answer the user's question. Just provide a merged and well-organized summary of the retrieved information.

User Query: {{user_query}}

```

You can freely customize the prompt based on your specific needs to guide the agent in performing desired tasks or generating targeted outputs.

### Tools

<figure><img src="/files/dUQHaNniv0MgC2l7NTFX" alt=""><figcaption></figcaption></figure>

Add both **Serp Google Search** and **Tavily Search** tools separately, and make sure they are enabled.


# Integrated Agent

In this section, we will demonstrate how to use the **Supervisor Node** within the **Multi-Agent** framework to flexibly orchestrate the two previously created agents—the **Web Search Agent** and the **Knowledge-Based QA Agent**. This enables a combined capability that leverages both internet-based search and internal knowledge retrieval to deliver more comprehensive answers.

## Overview of Flow Structure

<figure><img src="/files/AUzxEJlJdN0N7p83yflQ" alt=""><figcaption></figcaption></figure>

Under the default Multi-Agent configuration, you can directly utilize both agents by adding them to the **Supervisor Node**’s management scope. For detailed steps on how to add agents, please refer to the *Multi-Agent* section.

## Output Preview

<figure><img src="/files/OXhtY2fBx6feB6Qy3v54" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/Urzowh8KN9ayWtNf91Fx" alt=""><figcaption></figcaption></figure>

Once the configuration is complete, users can input a natural language question, and the system will automatically route it to the appropriate agent:

* If the question is related to **WorkFX**, the **Knowledge QA Agent** will be triggered to generate an answer based on the internal knowledge base.
* If the question requires **general web search**, the **Web Search Agent** will be used to retrieve information from the internet.
* The final output will be presented in a unified format, ensuring users receive accurate and relevant answers.


# Page 1


# API Reference


# Tenants

Get the details of the current tenant.

## GET /admin/api/v1/tenants/current

> Get Current Tenant

```json
{"openapi":"3.0.1","info":{"title":"TargetPilot-Admin-API","version":"1.0.0"},"servers":[{"url":"https://api.workfx.ai","description":"Wfx Dev Env V1"}],"security":[],"paths":{"/admin/api/v1/tenants/current":{"get":{"summary":"Get Current Tenant","deprecated":false,"description":"","tags":[],"parameters":[{"name":"tenantId","in":"query","description":"","required":true,"schema":{"type":"string"}},{"name":"X-Api-Key","in":"header","description":"the API Key","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"createdTime":{"type":"string","format":"date-time"},"updatdTime":{"type":"string","format":"date-time"},"status":{"type":"string"},"tenantType":{"type":"string"}},"required":["id","name","createdTime","status","tenantType"]}}},"headers":{}}}}}}}
```


# Tenant Units

Manage tenant units, including listing all units, creating a new one, retrieving a specific unit, and getting the default tenant unit.

## GET /admin/api/v1/tenantUnits

> List Tenant Units

```json
{"openapi":"3.0.1","info":{"title":"TargetPilot-Admin-API","version":"1.0.0"},"servers":[{"url":"https://api.workfx.ai","description":"Wfx Dev Env V1"}],"security":[],"paths":{"/admin/api/v1/tenantUnits":{"get":{"summary":"List Tenant Units","deprecated":false,"description":"","tags":[],"parameters":[{"name":"page","in":"query","description":"default to 1 if not passing this query","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"default to 10 if not passing this query","schema":{"type":"integer"}},{"name":"tenantId","in":"query","description":"","required":true,"schema":{"type":"string"}},{"name":"X-Api-Key","in":"header","description":"the API Key","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"tenantUnits":{"type":"array","items":{"$ref":"#/components/schemas/tenantUnit"}},"pagination":{"$ref":"#/components/schemas/paginationResponse"}},"required":["tenantUnits"]}}},"headers":{}}}}}},"components":{"schemas":{"tenantUnit":{"type":"object","properties":{"id":{"type":"string"},"tenantId":{"type":"string"},"name":{"type":"string"},"createdTime":{"type":"string"},"updatedTime":{"type":"string"},"status":{"type":"string","enum":["active","inactive"]},"parentId":{"type":"string"},"level":{"type":"integer","default":0},"default":{"type":"boolean"}},"required":["name"]},"paginationResponse":{"type":"object","properties":{"totalCount":{"type":"integer"},"currentPage":{"type":"integer"},"pageSize":{"type":"integer"},"totalPages":{"type":"integer"}},"required":["totalCount","totalPages","pageSize","currentPage"]}}}}
```

## POST /admin/api/v1/tenantUnits

> Create a Tenant Unit

```json
{"openapi":"3.0.1","info":{"title":"TargetPilot-Admin-API","version":"1.0.0"},"servers":[{"url":"https://api.workfx.ai","description":"Wfx Dev Env V1"}],"security":[],"paths":{"/admin/api/v1/tenantUnits":{"post":{"summary":"Create a Tenant Unit","deprecated":false,"description":"","tags":[],"parameters":[{"name":"createDefaultAgent","in":"query","description":"","required":false,"schema":{"type":"boolean"}},{"name":"createDefaultDataset","in":"query","description":"","required":false,"schema":{"type":"boolean"}},{"name":"tenantId","in":"query","description":"","required":true,"schema":{"type":"string"}},{"name":"X-Api-Key","in":"header","description":"the API Key","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"parentId":{"type":"string"},"default":{"type":"boolean"}},"required":["name"]}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"tenantId":{"type":"string"},"name":{"type":"string"},"createdTime":{"type":"string"},"updatedTime":{"type":"string"},"status":{"type":"string","enum":["active","inactive"]},"parentId":{"type":"string"},"level":{"type":"integer","default":0},"default":{"type":"boolean"}},"required":["name"]}}},"headers":{}}}}}}}
```

## GET /admin/api/v1/tenantUnits/{tenantUnitId}

> Get a Tenant Unit

```json
{"openapi":"3.0.1","info":{"title":"TargetPilot-Admin-API","version":"1.0.0"},"servers":[{"url":"https://api.workfx.ai","description":"Wfx Dev Env V1"}],"security":[],"paths":{"/admin/api/v1/tenantUnits/{tenantUnitId}":{"get":{"summary":"Get a Tenant Unit","deprecated":false,"description":"","tags":[],"parameters":[{"name":"tenantUnitId","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"tenantId","in":"query","description":"","required":true,"schema":{"type":"string"}},{"name":"X-Api-Key","in":"header","description":"the API Key","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/tenantUnit"}}},"headers":{}}}}}},"components":{"schemas":{"tenantUnit":{"type":"object","properties":{"id":{"type":"string"},"tenantId":{"type":"string"},"name":{"type":"string"},"createdTime":{"type":"string"},"updatedTime":{"type":"string"},"status":{"type":"string","enum":["active","inactive"]},"parentId":{"type":"string"},"level":{"type":"integer","default":0},"default":{"type":"boolean"}},"required":["name"]}}}}
```

## GET /admin/api/v1/tenantUnits/default

> Default tenant unit

```json
{"openapi":"3.0.1","info":{"title":"TargetPilot-Admin-API","version":"1.0.0"},"servers":[{"url":"https://api.workfx.ai","description":"Wfx Dev Env V1"}],"security":[],"paths":{"/admin/api/v1/tenantUnits/default":{"get":{"summary":"Default tenant unit","deprecated":false,"description":"","tags":[],"parameters":[{"name":"tenantId","in":"query","description":"","required":true,"schema":{"type":"string"}},{"name":"X-Api-Key","in":"header","description":"the API Key","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{}}}},"headers":{}}}}}}}
```


# Datasets

Manage datasets, including creating, retrieving, listing, updating, and deleting datasets. These datasets can be used for Retrieval-Augmented Generation (RAG).

## POST /admin/api/v1/datasets

> Create a Dataset

```json
{"openapi":"3.0.1","info":{"title":"TargetPilot-Admin-API","version":"1.0.0"},"servers":[{"url":"https://api.workfx.ai","description":"Wfx Dev Env V1"}],"security":[],"paths":{"/admin/api/v1/datasets":{"post":{"summary":"Create a Dataset","deprecated":false,"description":"","tags":[],"parameters":[{"name":"tenantUnitId","in":"query","description":"","required":false,"schema":{"type":"string"}},{"name":"tenantId","in":"query","description":"","required":true,"schema":{"type":"string"}},{"name":"X-Api-Key","in":"header","description":"the API Key","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"tenantUnitId":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"type":{"type":"string","description":"knowledge or qa"},"tags":{"type":"array","items":{"type":"string"}}},"required":["name"]}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/dataset"}}},"headers":{}}}}}},"components":{"schemas":{"dataset":{"type":"object","properties":{"id":{"type":"string"},"tenantId":{"type":"string"},"tenantUnitId":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"createdTime":{"type":"string"},"updatedTime":{"type":"string"},"createdBy":{"type":"string"},"updatedBy":{"type":"string"},"status":{"type":"string"},"type":{"type":"string","description":"knowledge or qa"},"tags":{"type":"array","items":{"type":"string"}}}}}}}
```

## GET /admin/api/v1/datasets/{datasetId}

> Get a Dataset

```json
{"openapi":"3.0.1","info":{"title":"TargetPilot-Admin-API","version":"1.0.0"},"servers":[{"url":"https://api.workfx.ai","description":"Wfx Dev Env V1"}],"security":[],"paths":{"/admin/api/v1/datasets/{datasetId}":{"get":{"summary":"Get a Dataset","deprecated":false,"description":"","tags":[],"parameters":[{"name":"datasetId","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"tenantId","in":"query","description":"","required":true,"schema":{"type":"string"}},{"name":"X-Api-Key","in":"header","description":"the API Key","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/dataset"}}},"headers":{}}}}}},"components":{"schemas":{"dataset":{"type":"object","properties":{"id":{"type":"string"},"tenantId":{"type":"string"},"tenantUnitId":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"createdTime":{"type":"string"},"updatedTime":{"type":"string"},"createdBy":{"type":"string"},"updatedBy":{"type":"string"},"status":{"type":"string"},"type":{"type":"string","description":"knowledge or qa"},"tags":{"type":"array","items":{"type":"string"}}}}}}}
```

## GET /admin/api/v1/datasets

> List Dataset

```json
{"openapi":"3.0.1","info":{"title":"TargetPilot-Admin-API","version":"1.0.0"},"servers":[{"url":"https://api.workfx.ai","description":"Wfx Dev Env V1"}],"security":[],"paths":{"/admin/api/v1/datasets":{"get":{"summary":"List Dataset","deprecated":false,"description":"","tags":[],"parameters":[{"name":"tenantId","in":"query","description":"","required":false,"schema":{"type":"string"}},{"name":"tenantUnitId","in":"query","description":"","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"If no parameters are provided, all datasets will be returned.","required":false,"schema":{"type":"integer"}},{"name":"type","in":"query","description":"","required":false,"schema":{"type":"string"}},{"name":"X-Api-Key","in":"header","description":"the API Key","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/dataset"}}},"headers":{}}}}}},"components":{"schemas":{"dataset":{"type":"object","properties":{"id":{"type":"string"},"tenantId":{"type":"string"},"tenantUnitId":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"createdTime":{"type":"string"},"updatedTime":{"type":"string"},"createdBy":{"type":"string"},"updatedBy":{"type":"string"},"status":{"type":"string"},"type":{"type":"string","description":"knowledge or qa"},"tags":{"type":"array","items":{"type":"string"}}}}}}}
```

## DELETE /admin/api/v1/datasets/{datasetId}

> Delete dataset

```json
{"openapi":"3.0.1","info":{"title":"TargetPilot-Admin-API","version":"1.0.0"},"servers":[{"url":"https://api.workfx.ai","description":"Wfx Dev Env V1"}],"security":[],"paths":{"/admin/api/v1/datasets/{datasetId}":{"delete":{"summary":"Delete dataset","deprecated":false,"description":"","tags":[],"parameters":[{"name":"datasetId","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"deleteDocument","in":"query","description":"","required":false,"schema":{"type":"string"}},{"name":"tenantId","in":"query","description":"","required":false,"schema":{"type":"string"}},{"name":"X-Api-Key","in":"header","description":"the API Key","required":false,"schema":{"type":"string"}}],"responses":{"204":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{}}}},"headers":{}}}}}}}
```

## PATCH /admin/api/v1/datasets/{datatsetId}

> Partial update dataset

```json
{"openapi":"3.0.1","info":{"title":"TargetPilot-Admin-API","version":"1.0.0"},"servers":[{"url":"https://api.workfx.ai","description":"Wfx Dev Env V1"}],"security":[],"paths":{"/admin/api/v1/datasets/{datatsetId}":{"patch":{"summary":"Partial update dataset","deprecated":false,"description":"","tags":[],"parameters":[{"name":"datatsetId","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"tenantId","in":"query","description":"","required":true,"schema":{"type":"string"}},{"name":"X-Api-Key","in":"header","description":"the API Key","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string","nullable":true},"type":{"type":"string","description":"knowledge or qa"},"tags":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/dataset"}}},"headers":{}}}}}},"components":{"schemas":{"dataset":{"type":"object","properties":{"id":{"type":"string"},"tenantId":{"type":"string"},"tenantUnitId":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"createdTime":{"type":"string"},"updatedTime":{"type":"string"},"createdBy":{"type":"string"},"updatedBy":{"type":"string"},"status":{"type":"string"},"type":{"type":"string","description":"knowledge or qa"},"tags":{"type":"array","items":{"type":"string"}}}}}}}
```


# Documents

Manage documents and their chunks, including creation via URL or file upload, retrieval, update, deletion, search, and status control. Documents can be associated with datasets.

## POST /admin/api/v1/documents

> Create A Document

```json
{"openapi":"3.0.1","info":{"title":"TargetPilot-Admin-API","version":"1.0.0"},"servers":[{"url":"https://api.workfx.ai","description":"Wfx Dev Env V1"}],"security":[],"paths":{"/admin/api/v1/documents":{"post":{"summary":"Create A Document","deprecated":false,"description":"","tags":[],"parameters":[{"name":"datasetIds","in":"query","description":"","required":false,"schema":{"type":"string"}},{"name":"tenantUnitId","in":"query","description":"","required":false,"schema":{"type":"string"}},{"name":"tenantId","in":"query","description":"","required":true,"schema":{"type":"string"}},{"name":"X-Api-Key","in":"header","description":"the API Key","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"tenantId":{"type":"string"},"tenantUnitId":{"type":"string"},"documentType":{"type":"string","enum":["UnstructuredFile","StructuredFile","UnstructuredWebpage","StructuredWebpage"]},"documentSubType":{"type":"string","enum":["pdf","txt","html","xml","json","csv","xlsx","docx"]},"documentName":{"type":"string"},"storageType":{"type":"string","description":"s3, gcs"},"storageBucket":{"type":"string","description":"use url or storageBucket + storagePath"},"storagePath":{"type":"string"},"url":{"type":"string","description":"use url or storageBucket + storagePath"},"title":{"type":"string"},"customProperties":{"type":"object","properties":{}},"enabled":{"type":"boolean"},"documentContent":{"type":"string"}},"required":["tenantId","tenantUnitId","documentType"]}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"tenantUnitId":{"type":"string"},"documentType":{"type":"string","enum":["UnstructuredFile","StructuredFile","UnstructuredWebpage","StructuredWebpage"]},"documentSubType":{"type":"string","enum":["pdf","txt","html","xml","json","csv","xlsx","docx"]},"documentName":{"type":"string"},"storageType":{"type":"string","description":"s3, gcs"},"storageBucket":{"type":"string","description":"use url or storageBucket + storagePath"},"storagePath":{"type":"string"},"url":{"type":"string","description":"use url or storageBucket + storagePath"},"createdTime":{"type":"string"},"updatedTime":{"type":"string"},"status":{"type":"string","enum":["created","processing","process_failed","processed"]},"createdBy":{"type":"string"},"updatedBy":{"type":"string"},"title":{"type":"string"},"category":{"type":"string"},"processingProgress":{"type":"number"},"customProperties":{"type":"object","properties":{}},"enabled":{"type":"boolean"},"documentContent":{"type":"string"}},"required":["tenantUnitId","documentType"]}}},"headers":{}}}}}}}
```

## POST /admin/api/v1/documents/upload

> Create a Document by Uploading a File

```json
{"openapi":"3.0.1","info":{"title":"TargetPilot-Admin-API","version":"1.0.0"},"servers":[{"url":"https://api.workfx.ai","description":"Wfx Dev Env V1"}],"security":[],"paths":{"/admin/api/v1/documents/upload":{"post":{"summary":"Create a Document by Uploading a File","deprecated":false,"description":"","tags":[],"parameters":[{"name":"tenantId","in":"query","description":"","required":false,"schema":{"type":"string"}},{"name":"tenantUnitId","in":"query","description":"","required":false,"schema":{"type":"string"}},{"name":"X-Api-Key","in":"header","description":"the API Key","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"documentType":{"type":"string"},"documentSubType":{"type":"string"},"category":{"type":"string"},"datasetIds":{"type":"array"},"tenantUnitId":{"type":"string"},"file":{"format":"binary","type":"string"},"tenantId":{"type":"string"},"customProperties":{"type":"string"}},"required":["documentType","datasetIds","tenantUnitId","file","tenantId"]}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/document"}}},"headers":{}}}}}},"components":{"schemas":{"document":{"type":"object","properties":{"id":{"type":"string"},"tenantId":{"type":"string"},"tenantUnitId":{"type":"string"},"documentType":{"type":"string","enum":["UnstructuredFile","StructuredFile","UnstructuredWebpage","StructuredWebpage"]},"documentSubType":{"type":"string","enum":["pdf","txt","html","xml","json","csv","xlsx","docx"]},"documentName":{"type":"string"},"storageType":{"type":"string","description":"s3, gcs"},"storageBucket":{"type":"string","description":"use url or storageBucket + storagePath"},"storagePath":{"type":"string"},"url":{"type":"string","description":"use url or storageBucket + storagePath"},"createdTime":{"type":"string"},"updatedTime":{"type":"string"},"status":{"type":"string","enum":["created","processing","process_failed","processed"]},"createdBy":{"type":"string"},"updatedBy":{"type":"string"},"title":{"type":"string"},"category":{"type":"string"},"processingProgress":{"type":"number"},"customProperties":{"type":"object","properties":{}},"enabled":{"type":"boolean"},"documentContent":{"type":"string"}},"required":["tenantId","documentType","tenantUnitId"]}}}}
```

## PUT /admin/api/v1/api/v1/documents/byExternalId/{externalId}

> Upsert a document by external ID

```json
{"openapi":"3.0.1","info":{"title":"TargetPilot-Admin-API","version":"1.0.0"},"servers":[{"url":"https://api.workfx.ai","description":"Wfx Dev Env V1"}],"security":[],"paths":{"/admin/api/v1/api/v1/documents/byExternalId/{externalId}":{"put":{"summary":"Upsert a document by external ID","deprecated":false,"description":"","tags":[],"parameters":[{"name":"externalId","in":"path","description":"External ID of the document","required":true,"schema":{"type":"string"}},{"name":"datasetIds","in":"query","description":"Optional list of dataset IDs as JSON string","required":false,"schema":{"type":"string"}},{"name":"tenantId","in":"query","description":"","required":true,"schema":{"type":"string"}},{"name":"X-Api-Key","in":"header","description":"the API Key","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["externalId","tenantId","tenantUnitId"],"properties":{"externalId":{"type":"string","description":"External ID used to identify the document"},"documentName":{"type":"string","description":"Name of the document"},"tenantId":{"type":"string","description":"Tenant ID"},"tenantUnitId":{"type":"string","description":"Tenant Unit ID"},"url":{"type":"string","format":"uri","description":"URL of the document to fetch and process"},"documentContent":{"type":"string","description":"Direct content of the document, if provided"},"custom_properties":{"type":"object","additionalProperties":true,"description":"Optional custom properties for the document","properties":{}}}}}}},"responses":{"200":{"description":"Document successfully upserted","content":{"application/json":{"schema":{"type":"object","properties":{"externalId":{"type":"string"},"documentName":{"type":"string"},"status":{"type":"string"}}}}},"headers":{}},"400":{"description":"Invalid input","headers":{}},"401":{"description":"Unauthorized","headers":{}},"500":{"description":"Internal server error","headers":{}}}}}}}
```

## GET /admin/api/v1/documents/{documentId}

> Get a Document

```json
{"openapi":"3.0.1","info":{"title":"TargetPilot-Admin-API","version":"1.0.0"},"servers":[{"url":"https://api.workfx.ai","description":"Wfx Dev Env V1"}],"security":[],"paths":{"/admin/api/v1/documents/{documentId}":{"get":{"summary":"Get a Document","deprecated":false,"description":"","tags":[],"parameters":[{"name":"documentId","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"tenantId","in":"query","description":"","required":true,"schema":{"type":"string"}},{"name":"X-Api-Key","in":"header","description":"the API Key","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/document"}}},"headers":{}}}}}},"components":{"schemas":{"document":{"type":"object","properties":{"id":{"type":"string"},"tenantId":{"type":"string"},"tenantUnitId":{"type":"string"},"documentType":{"type":"string","enum":["UnstructuredFile","StructuredFile","UnstructuredWebpage","StructuredWebpage"]},"documentSubType":{"type":"string","enum":["pdf","txt","html","xml","json","csv","xlsx","docx"]},"documentName":{"type":"string"},"storageType":{"type":"string","description":"s3, gcs"},"storageBucket":{"type":"string","description":"use url or storageBucket + storagePath"},"storagePath":{"type":"string"},"url":{"type":"string","description":"use url or storageBucket + storagePath"},"createdTime":{"type":"string"},"updatedTime":{"type":"string"},"status":{"type":"string","enum":["created","processing","process_failed","processed"]},"createdBy":{"type":"string"},"updatedBy":{"type":"string"},"title":{"type":"string"},"category":{"type":"string"},"processingProgress":{"type":"number"},"customProperties":{"type":"object","properties":{}},"enabled":{"type":"boolean"},"documentContent":{"type":"string"}},"required":["tenantId","documentType","tenantUnitId"]}}}}
```

## GET /admin/api/v1/documents

> List Documents

```json
{"openapi":"3.0.1","info":{"title":"TargetPilot-Admin-API","version":"1.0.0"},"servers":[{"url":"https://api.workfx.ai","description":"Wfx Dev Env V1"}],"security":[],"paths":{"/admin/api/v1/documents":{"get":{"summary":"List Documents","deprecated":false,"description":"","tags":[],"parameters":[{"name":"type","in":"query","description":"","required":false,"schema":{"type":"string"}},{"name":"tenantUnitId","in":"query","description":"","required":false,"schema":{"type":"string"}},{"name":"datasetIds","in":"query","description":"dataset ids, seperate with comma","required":false,"schema":{"type":"string"}},{"name":"types","in":"query","description":"UnstructuredFile\nStructuredFile\nUnstructuredWebpage\nStructuredWebpage","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"default to 1 if not passing this query","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"default to 10 if not passing this query","schema":{"type":"integer"}},{"name":"tenantId","in":"query","description":"","required":true,"schema":{"type":"string"}},{"name":"X-Api-Key","in":"header","description":"the API Key","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/document"}},"pagination":{"$ref":"#/components/schemas/paginationResponse"}},"required":["data","pagination"]}}},"headers":{}}}}}},"components":{"schemas":{"document":{"type":"object","properties":{"id":{"type":"string"},"tenantId":{"type":"string"},"tenantUnitId":{"type":"string"},"documentType":{"type":"string","enum":["UnstructuredFile","StructuredFile","UnstructuredWebpage","StructuredWebpage"]},"documentSubType":{"type":"string","enum":["pdf","txt","html","xml","json","csv","xlsx","docx"]},"documentName":{"type":"string"},"storageType":{"type":"string","description":"s3, gcs"},"storageBucket":{"type":"string","description":"use url or storageBucket + storagePath"},"storagePath":{"type":"string"},"url":{"type":"string","description":"use url or storageBucket + storagePath"},"createdTime":{"type":"string"},"updatedTime":{"type":"string"},"status":{"type":"string","enum":["created","processing","process_failed","processed"]},"createdBy":{"type":"string"},"updatedBy":{"type":"string"},"title":{"type":"string"},"category":{"type":"string"},"processingProgress":{"type":"number"},"customProperties":{"type":"object","properties":{}},"enabled":{"type":"boolean"},"documentContent":{"type":"string"}},"required":["tenantId","documentType","tenantUnitId"]},"paginationResponse":{"type":"object","properties":{"totalCount":{"type":"integer"},"currentPage":{"type":"integer"},"pageSize":{"type":"integer"},"totalPages":{"type":"integer"}},"required":["totalCount","totalPages","pageSize","currentPage"]}}}}
```

## DELETE /admin/api/v1/documents/{documentId}

> Delete a Document

```json
{"openapi":"3.0.1","info":{"title":"TargetPilot-Admin-API","version":"1.0.0"},"servers":[{"url":"https://api.workfx.ai","description":"Wfx Dev Env V1"}],"security":[],"paths":{"/admin/api/v1/documents/{documentId}":{"delete":{"summary":"Delete a Document","deprecated":false,"description":"","tags":[],"parameters":[{"name":"documentId","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"tenantId","in":"query","description":"","required":true,"schema":{"type":"string"}},{"name":"X-Api-Key","in":"header","description":"the API Key","required":false,"schema":{"type":"string"}}],"responses":{"204":{"description":"","content":{"application/json":{"schema":{"type":"null"}}},"headers":{}}}}}}}
```

## GET /admin/api/v1/documents/byIds

> Get Documents By Ids

```json
{"openapi":"3.0.1","info":{"title":"TargetPilot-Admin-API","version":"1.0.0"},"servers":[{"url":"https://api.workfx.ai","description":"Wfx Dev Env V1"}],"security":[],"paths":{"/admin/api/v1/documents/byIds":{"get":{"summary":"Get Documents By Ids","deprecated":false,"description":"","tags":[],"parameters":[{"name":"documentIds","in":"query","description":"","required":false,"schema":{"type":"string"}},{"name":"tenantId","in":"query","description":"","required":true,"schema":{"type":"string"}},{"name":"X-Api-Key","in":"header","description":"the API Key","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/document"}}}},"headers":{}}}}}},"components":{"schemas":{"document":{"type":"object","properties":{"id":{"type":"string"},"tenantId":{"type":"string"},"tenantUnitId":{"type":"string"},"documentType":{"type":"string","enum":["UnstructuredFile","StructuredFile","UnstructuredWebpage","StructuredWebpage"]},"documentSubType":{"type":"string","enum":["pdf","txt","html","xml","json","csv","xlsx","docx"]},"documentName":{"type":"string"},"storageType":{"type":"string","description":"s3, gcs"},"storageBucket":{"type":"string","description":"use url or storageBucket + storagePath"},"storagePath":{"type":"string"},"url":{"type":"string","description":"use url or storageBucket + storagePath"},"createdTime":{"type":"string"},"updatedTime":{"type":"string"},"status":{"type":"string","enum":["created","processing","process_failed","processed"]},"createdBy":{"type":"string"},"updatedBy":{"type":"string"},"title":{"type":"string"},"category":{"type":"string"},"processingProgress":{"type":"number"},"customProperties":{"type":"object","properties":{}},"enabled":{"type":"boolean"},"documentContent":{"type":"string"}},"required":["tenantId","documentType","tenantUnitId"]}}}}
```

## PATCH /admin/api/v1/documents/{documentId}

> Partial update document

```json
{"openapi":"3.0.1","info":{"title":"TargetPilot-Admin-API","version":"1.0.0"},"servers":[{"url":"https://api.workfx.ai","description":"Wfx Dev Env V1"}],"security":[],"paths":{"/admin/api/v1/documents/{documentId}":{"patch":{"summary":"Partial update document","deprecated":false,"description":"","tags":[],"parameters":[{"name":"documentId","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"tenantId","in":"query","description":"","required":true,"schema":{"type":"string"}},{"name":"X-Api-Key","in":"header","description":"the API Key","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"use url or storageBucket + storagePath"},"customProperties":{"type":"object","properties":{}},"enabled":{"type":"boolean"},"documentContent":{"type":"string"}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/document"}}},"headers":{}}}}}},"components":{"schemas":{"document":{"type":"object","properties":{"id":{"type":"string"},"tenantId":{"type":"string"},"tenantUnitId":{"type":"string"},"documentType":{"type":"string","enum":["UnstructuredFile","StructuredFile","UnstructuredWebpage","StructuredWebpage"]},"documentSubType":{"type":"string","enum":["pdf","txt","html","xml","json","csv","xlsx","docx"]},"documentName":{"type":"string"},"storageType":{"type":"string","description":"s3, gcs"},"storageBucket":{"type":"string","description":"use url or storageBucket + storagePath"},"storagePath":{"type":"string"},"url":{"type":"string","description":"use url or storageBucket + storagePath"},"createdTime":{"type":"string"},"updatedTime":{"type":"string"},"status":{"type":"string","enum":["created","processing","process_failed","processed"]},"createdBy":{"type":"string"},"updatedBy":{"type":"string"},"title":{"type":"string"},"category":{"type":"string"},"processingProgress":{"type":"number"},"customProperties":{"type":"object","properties":{}},"enabled":{"type":"boolean"},"documentContent":{"type":"string"}},"required":["tenantId","documentType","tenantUnitId"]}}}}
```

## PATCH /admin/api/v1/documents/{documentId}/toggle

> Toggle Document(Enable/Disable)

```json
{"openapi":"3.0.1","info":{"title":"TargetPilot-Admin-API","version":"1.0.0"},"servers":[{"url":"https://api.workfx.ai","description":"Wfx Dev Env V1"}],"security":[],"paths":{"/admin/api/v1/documents/{documentId}/toggle":{"patch":{"summary":"Toggle Document(Enable/Disable)","deprecated":false,"description":"","tags":[],"parameters":[{"name":"documentId","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"tenantId","in":"query","description":"","required":true,"schema":{"type":"string"}},{"name":"X-Api-Key","in":"header","description":"the API Key","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{}}}},"headers":{}}}}}}}
```

## GET /admin/api/v1/api/v1/documents/{documentId}/documentChunks/

> List Document Chunks

```json
{"openapi":"3.0.1","info":{"title":"TargetPilot-Admin-API","version":"1.0.0"},"servers":[{"url":"https://api.workfx.ai","description":"Wfx Dev Env V1"}],"security":[],"paths":{"/admin/api/v1/api/v1/documents/{documentId}/documentChunks/":{"get":{"summary":"List Document Chunks","deprecated":false,"description":"","tags":[],"parameters":[{"name":"documentId","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","description":"default to 1 if not passing this query","schema":{"type":"integer"}},{"name":"pageSize","in":"query","description":"default to 10 if not passing this query","schema":{"type":"integer"}},{"name":"tenantId","in":"query","description":"","required":true,"schema":{"type":"string"}},{"name":"X-Api-Key","in":"header","description":"the API Key","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"content":{"type":"string"},"contentComplement":{"type":"string"},"createdTime":{"type":"string"},"documentId":{"type":"string"},"id":{"type":"string"},"keywords":{"type":"object","properties":{}},"metadata":{"type":"object","properties":{"file_directory":{"type":"string"},"filename":{"type":"string"},"filetype":{"type":"string"},"languages":{"type":"array","items":{"type":"string"}},"last_modified":{"type":"string"},"page_number":{"type":"integer"}},"required":["file_directory","filename","filetype","languages","last_modified","page_number"]},"status":{"type":"string"},"tenantId":{"type":"string"},"tenantUnitId":{"type":"string"},"updatedTime":{"type":"string"}},"required":["content","contentComplement","createdTime","documentId","id","keywords","metadata","status","tenantId","tenantUnitId","updatedTime"]}},"pagination":{"type":"object","properties":{"currentPage":{"type":"integer"},"pageSize":{"type":"integer"},"totalCount":{"type":"integer"},"totalPages":{"type":"integer"}},"required":["currentPage","pageSize","totalCount","totalPages"]}},"required":["data","pagination"]}}},"headers":{}}}}}}}
```

## POST /admin/api/v1/api/v1/documentChunks/search

> Document Chunks Search

```json
{"openapi":"3.0.1","info":{"title":"TargetPilot-Admin-API","version":"1.0.0"},"servers":[{"url":"https://api.workfx.ai","description":"Wfx Dev Env V1"}],"security":[],"paths":{"/admin/api/v1/api/v1/documentChunks/search":{"post":{"summary":"Document Chunks Search","deprecated":false,"description":"","tags":[],"parameters":[{"name":"tenantId","in":"query","description":"","required":true,"schema":{"type":"string"}},{"name":"X-Api-Key","in":"header","description":"the API Key","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"tenant_id":{"type":"string"},"tenant_unit_id":{"type":"string"},"dataset_ids":{"type":"array","items":{"type":"string"}},"query":{"type":"string"},"top_k":{"type":"integer","description":"default is 5"},"language":{"type":"string","description":"currently support  'english' or 'chinese' , default is 'english'"}},"required":["tenant_id","tenant_unit_id","dataset_ids","query"]}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"content":{"type":"string"},"content_complement":{"type":"string"},"created_time":{"type":"string"},"document_id":{"type":"string"},"document_name":{"type":"string"},"document_sub_type":{"type":"string"},"document_type":{"type":"string"},"id":{"type":"string"},"keywords":{"type":"array","items":{"type":"string"}},"metadata":{"type":"object","properties":{"dataset_ids":{"type":"array","items":{"type":"string"}}},"required":["dataset_ids"]},"score":{"type":"number"},"tenant_id":{"type":"string"},"tenant_unit_id":{"type":"string"},"updated_time":{"type":"string"}},"required":["content","content_complement","created_time","document_id","document_name","document_sub_type","document_type","id","keywords","metadata","score","tenant_id","tenant_unit_id","updated_time"]}}}},"headers":{}}}}}}}
```

## PATCH /admin/api/v1/api/v1/documents/{document\_id}/documentChunks/\<chunk\_id>

> Patch Document Chunks

```json
{"openapi":"3.0.1","info":{"title":"TargetPilot-Admin-API","version":"1.0.0"},"servers":[{"url":"https://api.workfx.ai","description":"Wfx Dev Env V1"}],"security":[],"paths":{"/admin/api/v1/api/v1/documents/{document_id}/documentChunks/<chunk_id>":{"patch":{"summary":"Patch Document Chunks","deprecated":false,"description":"","tags":[],"parameters":[{"name":"document_id","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"tenantId","in":"query","description":"","required":true,"schema":{"type":"string"}},{"name":"X-Api-Key","in":"header","description":"the API Key","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string"},"keywords":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{}}}},"headers":{}}}}}}}
```

## DELETE /admin/api/v1/documents/{document\_id}/documentChunks/batch

> Batch Delete Document Chunks

```json
{"openapi":"3.0.1","info":{"title":"TargetPilot-Admin-API","version":"1.0.0"},"servers":[{"url":"https://api.workfx.ai","description":"Wfx Dev Env V1"}],"security":[],"paths":{"/admin/api/v1/documents/{document_id}/documentChunks/batch":{"delete":{"summary":"Batch Delete Document Chunks","deprecated":false,"description":"","tags":[],"parameters":[{"name":"document_id","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"tenantUnitId","in":"query","description":"","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"tenantId","in":"query","description":"","required":false,"schema":{"type":"string"}},{"name":"X-Api-Key","in":"header","description":"the API Key","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{}}}},"headers":{}}}}}}}
```

## PATCH /admin/api/v1/documents/{document\_id}/documentChunks/batch/status

> Batch Change Document Chunks Status

```json
{"openapi":"3.0.1","info":{"title":"TargetPilot-Admin-API","version":"1.0.0"},"servers":[{"url":"https://api.workfx.ai","description":"Wfx Dev Env V1"}],"security":[],"paths":{"/admin/api/v1/documents/{document_id}/documentChunks/batch/status":{"patch":{"summary":"Batch Change Document Chunks Status","deprecated":false,"description":"","tags":[],"parameters":[{"name":"document_id","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"tenantUnitId","in":"query","description":"","required":true,"schema":{"type":"string"}},{"name":"tenantId","in":"query","description":"","required":false,"schema":{"type":"string"}},{"name":"X-Api-Key","in":"header","description":"the API Key","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":"active or inactive"},"documentChunkIds":{"type":"array","items":{"type":"string"}}},"required":["status","documentChunkIds"]}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{}}}},"headers":{}}}}}}}
```

## PATCH /admin/api/v1/api/v1/documents/{document\_id}/documentChunks/\<chunk\_id>/status

> Change Document Chunks Status

```json
{"openapi":"3.0.1","info":{"title":"TargetPilot-Admin-API","version":"1.0.0"},"servers":[{"url":"https://api.workfx.ai","description":"Wfx Dev Env V1"}],"security":[],"paths":{"/admin/api/v1/api/v1/documents/{document_id}/documentChunks/<chunk_id>/status":{"patch":{"summary":"Change Document Chunks Status","deprecated":false,"description":"","tags":[],"parameters":[{"name":"document_id","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"tenantUnitId","in":"query","description":"","required":true,"schema":{"type":"string"}},{"name":"tenantId","in":"query","description":"","required":true,"schema":{"type":"string"}},{"name":"X-Api-Key","in":"header","description":"the API Key","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":"active or inactive"}},"required":["status"]}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{}}}},"headers":{}}}}}}}
```


# Agent


# Agent Flows

Manage conversational flows for agents. Use these APIs to create, update, retrieve, publish, list, and run draft flows. Ideal for designing, testing, and deploying multi-step agent behaviors.

## POST /admin/api/v2/tools/{tool\_id}/flows

> Create Or Update Draft Flow Tool

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Tool"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/tools/{tool_id}/flows":{"post":{"summary":"Create Or Update Draft Flow Tool","deprecated":false,"description":"","operationId":"create_or_update_draft_flow_tool_admin_api_v2_tools__tool_id__flows_post","tags":["Tool"],"parameters":[{"name":"tool_id","in":"path","description":"Tool id","required":true,"schema":{"type":"string","format":"uuid","description":"Tool id","title":"Tool Id"}},{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowDraftVersionCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowDefinitionEntity"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"FlowDraftVersionCreateRequest":{"properties":{"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"created_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Role"},"updated_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Role"},"created_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Time"},"updated_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated Time"},"owner_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Id","description":"The ID of the flow this definition belongs to"},"owner_type":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Type of flow [flow, tool]"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Flow mode, e.g., chat or job"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Version of the flow"},"graph":{"type":"object","title":"Graph","description":"Flow graph","default":{},"properties":{}},"features":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Features","description":"Additional features for the flow"},"flow_variables":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Flow Variables","description":"Environment variables for the flow"},"conversation_variables":{"anyOf":[{"additionalProperties":{"type":"object","properties":{}},"type":"object"},{"type":"null"}],"title":"Conversation Variables","description":"Conversation variables for the flow"}},"type":"object","title":"FlowDraftVersionCreateRequest"},"FlowDefinitionEntity":{"properties":{"created_by":{"type":"string","title":"Created By","description":"ID of the creator"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By","description":"ID of the last updater"},"created_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Role"},"updated_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Role"},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"Timestamp of creation"},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"Timestamp of last update"},"owner_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Id","description":"The ID of the flow this definition belongs to"},"owner_type":{"anyOf":[{"$ref":"#/components/schemas/FlowOwnerType"},{"type":"null"}],"description":"Type of flow [flow, tool]"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Flow mode, e.g., chat or job"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Version of the flow"},"graph":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Graph","description":"Flow graph"},"features":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Features","description":"Additional features for the flow"},"flow_variables":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Flow Variables","description":"Environment variables for the flow"},"conversation_variables":{"anyOf":[{"additionalProperties":{"type":"object","properties":{}},"type":"object"},{"type":"null"}],"title":"Conversation Variables","description":"Conversation variables for the flow"},"id":{"type":"string","title":"Id","description":"The ID of the created FlowDefinitionDO"},"tenant_id":{"type":"string","title":"Tenant Id","description":"Tenant ID"},"tenant_unit_id":{"type":"string","title":"Tenant Unit Id","description":"Tenant Unit ID"}},"type":"object","required":["created_by","id","tenant_id","tenant_unit_id"],"title":"FlowDefinitionEntity","description":"Full flow model with additional fields used for responses."},"FlowOwnerType":{"type":"string","enum":["agent","multi-agent","tool"],"title":"FlowOwnerType"},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```

## Get Draft

> Get the DRAFT version of a flow

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Flows Versions"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/agents/{agent_id}/flows/draft":{"get":{"summary":"Get Draft","deprecated":false,"description":"Get the DRAFT version of a flow","operationId":"get_draft_admin_api_v2_agents__agent_id__flows_draft_get","tags":["Flows Versions"],"parameters":[{"name":"agent_id","in":"path","description":"","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}},{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowDefinitionEntity"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"FlowDefinitionEntity":{"properties":{"created_by":{"type":"string","title":"Created By","description":"ID of the creator"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By","description":"ID of the last updater"},"created_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Role"},"updated_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Role"},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"Timestamp of creation"},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"Timestamp of last update"},"owner_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Id","description":"The ID of the flow this definition belongs to"},"owner_type":{"anyOf":[{"$ref":"#/components/schemas/FlowOwnerType"},{"type":"null"}],"description":"Type of flow [flow, tool]"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Flow mode, e.g., chat or job"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Version of the flow"},"graph":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Graph","description":"Flow graph"},"features":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Features","description":"Additional features for the flow"},"flow_variables":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Flow Variables","description":"Environment variables for the flow"},"conversation_variables":{"anyOf":[{"additionalProperties":{"type":"object","properties":{}},"type":"object"},{"type":"null"}],"title":"Conversation Variables","description":"Conversation variables for the flow"},"id":{"type":"string","title":"Id","description":"The ID of the created FlowDefinitionDO"},"tenant_id":{"type":"string","title":"Tenant Id","description":"Tenant ID"},"tenant_unit_id":{"type":"string","title":"Tenant Unit Id","description":"Tenant Unit ID"}},"type":"object","required":["created_by","id","tenant_id","tenant_unit_id"],"title":"FlowDefinitionEntity","description":"Full flow model with additional fields used for responses."},"FlowOwnerType":{"type":"string","enum":["agent","multi-agent","tool"],"title":"FlowOwnerType"},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```

## Publish

> Publish the current DRAFT version as a formal version

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Flows Versions"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/agents/{agent_id}/flows/publish":{"post":{"summary":"Publish","deprecated":false,"description":"Publish the current DRAFT version as a formal version","operationId":"publish_admin_api_v2_agents__agent_id__flows_publish_post","tags":["Flows Versions"],"parameters":[{"name":"agent_id","in":"path","description":"","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}},{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowVersionPublishResponse"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"FlowVersionPublishResponse":{"properties":{"created_by":{"type":"string","title":"Created By","description":"ID of the creator"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By","description":"ID of the last updater"},"created_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Role"},"updated_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Role"},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"Timestamp of creation"},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"Timestamp of last update"},"owner_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Id","description":"The ID of the flow this definition belongs to"},"owner_type":{"anyOf":[{"$ref":"#/components/schemas/FlowOwnerType"},{"type":"null"}],"description":"Type of flow [flow, tool]"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode","description":"Flow mode, e.g., chat or job"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version","description":"Version of the flow"},"graph":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Graph","description":"Flow graph"},"features":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Features","description":"Additional features for the flow"},"flow_variables":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Flow Variables","description":"Environment variables for the flow"},"conversation_variables":{"anyOf":[{"additionalProperties":{"type":"object","properties":{}},"type":"object"},{"type":"null"}],"title":"Conversation Variables","description":"Conversation variables for the flow"},"id":{"type":"string","title":"Id","description":"The ID of the created FlowDefinitionDO"},"tenant_id":{"type":"string","title":"Tenant Id","description":"Tenant ID"},"tenant_unit_id":{"type":"string","title":"Tenant Unit Id","description":"Tenant Unit ID"}},"type":"object","required":["created_by","id","tenant_id","tenant_unit_id"],"title":"FlowVersionPublishResponse","description":"Response model for the created FlowDefinitionDO."},"FlowOwnerType":{"type":"string","enum":["agent","multi-agent","tool"],"title":"FlowOwnerType"},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```

## List Versions

> Get a list of all versions for a specific flow

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Flows Versions"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/agents/{agent_id}/flows":{"get":{"summary":"List Versions","deprecated":false,"description":"Get a list of all versions for a specific flow","operationId":"list_versions_admin_api_v2_agents__agent_id__flows_get","tags":["Flows Versions"],"parameters":[{"name":"agent_id","in":"path","description":"Agent id","required":true,"schema":{"type":"string","format":"uuid","description":"Agent id","title":"Agent Id"}},{"name":"page_num","in":"query","description":"Current page number","required":false,"schema":{"type":"integer","description":"Current page number","default":1,"title":"Page Num"}},{"name":"page_size","in":"query","description":"Items per page","required":false,"schema":{"type":"integer","description":"Items per page","default":20,"title":"Page Size"}},{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowVersionListResponse"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"FlowVersionListResponse":{"properties":{"page_num":{"type":"integer","title":"Page Num","description":"Current page number"},"page_size":{"type":"integer","title":"Page Size","description":"Number of items per page"},"total_count":{"type":"integer","title":"Total Count","description":"Total number of flows"},"has_next_page":{"type":"boolean","title":"Has Next Page","description":"Whether there is a next page"},"data":{"items":{"type":"object","properties":{}},"type":"array","title":"Data","description":"List of flow_definitions"}},"type":"object","required":["page_num","page_size","total_count","has_next_page","data"],"title":"FlowVersionListResponse","description":"Response model for the created flowDefinition."},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```

## Run Draft Workflow

> Run the draft version of the workflow

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Flow Runs"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/agents/{agent_id}/flows/draft/runs":{"post":{"summary":"Run Draft Workflow","deprecated":false,"description":"Run the draft version of the workflow","operationId":"run_draft_workflow_admin_api_v2_agents__agent_id__flows_draft_runs_post","tags":["Flow Runs"],"parameters":[{"name":"agent_id","in":"path","description":"","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}},{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentChatInvokeRequest"},{"$ref":"#/components/schemas/AgentJobInvokeRequest"}],"title":"Flow Run Request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"string"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"AgentChatInvokeRequest":{"properties":{"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query","default":""},"inputs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Inputs","description":"Input variables"},"streaming":{"type":"boolean","title":"Streaming","default":false},"files":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Files","default":[]},"response_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response Type","default":"wfx"},"wfx_context":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Wfx Context","default":{}},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"}},"type":"object","title":"AgentChatInvokeRequest"},"AgentJobInvokeRequest":{"properties":{"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query","default":""},"inputs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Inputs","description":"Input variables"},"streaming":{"type":"boolean","title":"Streaming","default":false},"files":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Files","default":[]},"response_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response Type","default":"wfx"},"wfx_context":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Wfx Context","default":{}},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"}},"type":"object","title":"AgentJobInvokeRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```


# Agent Operations

Manageand operate agents. These endpoints allow you to create, retrieve, update, delete, and interact with agents through chats and background tasks.

## Create Agent

> API Layer: Create a new Agent

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Agent"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/agents":{"post":{"summary":"Create Agent","deprecated":false,"description":"API Layer: Create a new Agent","operationId":"create_agent_admin_api_v2_agents_post","tags":["Agent"],"parameters":[{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCreateResponse"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"AgentCreateRequest":{"properties":{"icon_type":{"anyOf":[{"type":"string","enum":["emoji","file_id","url"]},{"type":"null"}],"title":"Icon Type","description":"Source type: 'emoji' or 'url'"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon","description":"Raw icon value: emoji char, full URL, or gallery key"},"icon_background":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Background","description":"Hex background color behind the icon","default":"#FFF"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"created_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Role"},"updated_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Role"},"created_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Time"},"updated_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated Time"},"mode":{"$ref":"#/components/schemas/AgentMode","description":"Workflow mode, e.g., chat or job"},"type":{"$ref":"#/components/schemas/AgentType","description":"Agent type (single-agent, multi-agent) - legacy types (flow, instruction, tool) are deprecated"},"name":{"type":"string","title":"Name","description":"Workflow name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Workflow description","default":""},"abilities":{"anyOf":[{"$ref":"#/components/schemas/AbilityEntity-Input"},{"type":"null"}],"description":"Extend properties","default":{"opening_statement":"","suggested_questions":[],"suggested_questions_after_answer":{"enabled":false},"text_to_speech":{"enabled":false,"language":"","voice":""},"speech_to_text":{"enabled":false},"retriever_resource":{"enabled":false},"sensitive_word_avoidance":{"enabled":false},"file_upload":{"allowed_file_extensions":[],"allowed_file_types":["image","video","audio","document"],"allowed_file_upload_methods":["local_file","remote_url"],"enabled":true,"fileUploadConfig":{"audio_file_size_limit":50,"batch_count_limit":5,"file_size_limit":15,"image_file_size_limit":10,"video_file_size_limit":100,"workflow_file_upload_limit":10},"image_config":{"detail":"low"},"number_limits":4}},"$ref":"#/components/schemas/AbilityEntity-Input"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","description":"List of tags","default":[]},"is_favorite":{"type":"boolean","title":"Is Favorite","description":"Indicates if the item is marked as favorite","default":false},"extend_properties":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Extend Properties","description":"Extend properties"}},"type":"object","required":["mode","type","name"],"title":"AgentCreateRequest","description":"Request model for creating a workflow. Only includes fields that should be provided by the frontend."},"AgentMode":{"type":"string","enum":["flow-job","flow-chat","instruction-chat","multi-agent-flow-job","multi-agent-flow-chat","multi-agent-instruction-chat"],"title":"AgentMode"},"AgentType":{"type":"string","enum":["single-agent","multi-agent","flow","instruction","tool"],"title":"AgentType"},"AbilityEntity-Input":{"properties":{"opening_statement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Opening Statement","description":"Opening statement","default":""},"suggested_questions":{"items":{"type":"string"},"type":"array","title":"Suggested Questions","description":"List of suggested questions","default":[]},"suggested_questions_after_answer":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Suggested questions after answer entity","default":{"enabled":true}},"text_to_speech":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Text to speech entity","default":{"enabled":true,"voice":"","language":""}},"speech_to_text":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Speech to text entity","default":{"enabled":true}},"retriever_resource":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Retriever resource entity","default":{"enabled":true}},"sensitive_word_avoidance":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Sensitive word avoidance entity","default":{"enabled":false}},"file_upload":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"File upload entity"}},"type":"object","title":"AbilityEntity","description":"Ability entity"},"AgentCreateResponse":{"properties":{"icon_type":{"anyOf":[{"type":"string","enum":["emoji","file_id","url"]},{"type":"null"}],"title":"Icon Type","description":"Source type: 'emoji' or 'url'"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon","description":"Raw icon value: emoji char, full URL, or gallery key"},"icon_background":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Background","description":"Hex background color behind the icon","default":"#FFF"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"created_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Role"},"updated_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Role"},"created_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Time"},"updated_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated Time"},"mode":{"$ref":"#/components/schemas/AgentMode","description":"Workflow mode, e.g., chat or job"},"type":{"type":"string","description":"Agent type (single-agent, multi-agent) - legacy types (flow, instruction, tool) are deprecated"},"name":{"type":"string","title":"Name","description":"Workflow name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Workflow description","default":""},"abilities":{"anyOf":[{"$ref":"#/components/schemas/AbilityEntity-Output"},{"type":"null"}],"description":"Extend properties","default":{"opening_statement":"","suggested_questions":[],"suggested_questions_after_answer":{"enabled":false},"text_to_speech":{"enabled":false,"language":"","voice":""},"speech_to_text":{"enabled":false},"retriever_resource":{"enabled":false},"sensitive_word_avoidance":{"enabled":false},"file_upload":{"allowed_file_extensions":[],"allowed_file_types":["image","video","audio","document"],"allowed_file_upload_methods":["local_file","remote_url"],"enabled":true,"fileUploadConfig":{"audio_file_size_limit":50,"batch_count_limit":5,"file_size_limit":15,"image_file_size_limit":10,"video_file_size_limit":100,"workflow_file_upload_limit":10},"image_config":{"detail":"low"},"number_limits":4}},"$ref":"#/components/schemas/AbilityEntity-Output"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","description":"List of tags","default":[]},"is_favorite":{"type":"boolean","title":"Is Favorite","description":"Indicates if the item is marked as favorite","default":false},"extend_properties":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Extend Properties","description":"Extend properties"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Workflow ID"},"tenant_id":{"type":"string","title":"Tenant Id","description":"Tenant ID of creator"},"tenant_unit_id":{"type":"string","title":"Tenant Unit Id","description":"Tenant Unit ID of creator"},"status":{"type":"string","title":"Status","description":"Workflow status","default":"ACTIVE"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code","description":"Workflow status"},"definition_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Definition Id","description":"Definition id"},"definition_type":{"anyOf":[{"$ref":"#/components/schemas/AgentDefinitionType"},{"type":"null"}],"description":"definition_type"},"ab_test_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ab Test Id","description":"AB test config ID"},"ab_test_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ab Test Enabled","description":"Indicates if AB testing is enabled","default":false},"usage_guide":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Usage Guide","description":"Usage guide"},"visibility":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Resource visibility"},"agent_definition_entity":{"anyOf":[{"type":"object","properties":{}},{"$ref":"#/components/schemas/AgentInstructionEntity"},{"type":"null"}],"title":"Agent Definition Entity","description":"Agent definition entity"},"variables":{"anyOf":[{"items":{"type":"object","properties":{}},"type":"array"},{"type":"null"}],"title":"Variables","description":"Variables"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url","readOnly":true}},"type":"object","required":["mode","type","name","tenant_id","tenant_unit_id","icon_url"],"title":"AgentCreateResponse","description":"Response model for created workflow, which includes all fields of AgentItem."},"AbilityEntity-Output":{"properties":{"opening_statement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Opening Statement","description":"Opening statement","default":""},"suggested_questions":{"items":{"type":"string"},"type":"array","title":"Suggested Questions","description":"List of suggested questions","default":[]},"suggested_questions_after_answer":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Suggested questions after answer entity","default":{"enabled":true}},"text_to_speech":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Text to speech entity","default":{"enabled":true,"voice":"","language":""}},"speech_to_text":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Speech to text entity","default":{"enabled":true}},"retriever_resource":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Retriever resource entity","default":{"enabled":true}},"sensitive_word_avoidance":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Sensitive word avoidance entity","default":{"enabled":false}},"file_upload":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"File upload entity"}},"type":"object","title":"AbilityEntity","description":"Ability entity"},"AgentDefinitionType":{"type":"string","enum":["flow","instruction","tool"],"title":"AgentDefinitionType"},"AgentInstructionEntity":{"properties":{"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By","description":"Identifier of the creator"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By","description":"Identifier of the last updater"},"created_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Role"},"updated_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Role"},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"Timestamp of creation"},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"Timestamp of last update"},"llm_config":{"description":"Configuration for the LLM model_name","type":"object","properties":{}},"structured_prompt":{"type":"object","title":"Structured Prompt","description":"Structured prompt in JSON format","properties":{}},"text_prompt":{"type":"string","title":"Text Prompt","description":"Textual prompt for the agent"},"tools_config":{"items":{"$ref":"#/components/schemas/AgentToolConfig-Output"},"type":"array","title":"Tools Config","description":"Configuration for tools used by the agent"},"agent_mode":{"type":"string","title":"Agent Mode","description":"Mode of operation for the agent"},"dataset_retrieval_config":{"$ref":"#/components/schemas/DatasetsRetrievalConfig","description":"Configuration for the dataset used"},"product_retrieval_config":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Configuration for the product retrieval used"},"features":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Features","description":"Additional features in JSON format"},"variables":{"anyOf":[{"items":{"type":"object","properties":{}},"type":"array"},{"type":"null"}],"title":"Variables","description":"Variables in JSON format"},"id":{"type":"string","title":"Id","description":"Unique identifier for the Agent Instruction"},"tenant_id":{"type":"string","title":"Tenant Id","description":"Tenant identifier"},"tenant_unit_id":{"type":"string","title":"Tenant Unit Id","description":"Tenant unit identifier"},"agent_id":{"type":"string","title":"Agent Id","description":"Associated agent identifier"},"version":{"type":"string","title":"Version","description":"Version timestamp"},"is_deleted":{"type":"boolean","title":"Is Deleted","description":"Indicates if the item is deleted"}},"type":"object","required":["created_time","updated_time","llm_config","structured_prompt","text_prompt","tools_config","agent_mode","dataset_retrieval_config","id","tenant_id","tenant_unit_id","agent_id","version","is_deleted"],"title":"AgentInstructionEntity"},"AgentToolConfig-Output":{"properties":{"tool":{"$ref":"#/components/schemas/AgentToolEntity","description":"Tool entity"},"prompt":{"type":"string","title":"Prompt","description":"Prompt for the tool"},"approval_mode":{"type":"string","title":"Approval Mode","description":"Mode of approval"},"approval_condition":{"type":"object","title":"Approval Condition","description":"Condition for approval","properties":{}},"enable":{"type":"boolean","title":"Enable","description":"Enable or disable the tool"}},"type":"object","required":["tool","prompt","approval_mode","approval_condition","enable"],"title":"AgentToolConfig"},"AgentToolEntity":{"properties":{"tool_type":{"type":"object","properties":{}},"vendor_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor Id"},"resource_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Id"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_parameters":{"type":"object","title":"Tool Parameters","properties":{}}},"type":"object","required":["tool_type"],"title":"AgentToolEntity","description":"Agent Tool Entity."},"DatasetsRetrievalConfig":{"properties":{"datasets":{"items":{"$ref":"#/components/schemas/DatasetConfig"},"type":"array","title":"Datasets","description":"List of datasets"},"top_k":{"type":"integer","title":"Top K","description":"Top K datasets"},"retrieval_mode":{"type":"string","title":"Retrieval Mode","description":"Retrieval mode, vector or keyword or hybrid"},"tool_enabled":{"type":"boolean","title":"Tool Enabled","description":"Enable or disable the tool","default":false}},"type":"object","required":["datasets","top_k","retrieval_mode"],"title":"DatasetsRetrievalConfig"},"DatasetConfig":{"properties":{"id":{"type":"string","title":"Id","description":"Dataset ID"},"name":{"type":"string","title":"Name","description":"Dataset Name"},"enable":{"type":"boolean","title":"Enable","description":"Enable or disable the dataset"}},"type":"object","required":["id","name","enable"],"title":"DatasetConfig"},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```

## List Agents

> API Layer: Retrieve a list of Agents with pagination and filtering.

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Agent"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/agents":{"get":{"summary":"List Agents","deprecated":false,"description":"API Layer: Retrieve a list of Agents with pagination and filtering.","operationId":"list_agents_admin_api_v2_agents_get","tags":["Agent"],"parameters":[{"name":"page_num","in":"query","description":"Current page number","required":false,"schema":{"type":"integer","description":"Current page number","default":1,"title":"Page Num"}},{"name":"page_size","in":"query","description":"Items per page","required":false,"schema":{"type":"integer","description":"Items per page","default":20,"title":"Page Size"}},{"name":"is_favorite","in":"query","description":"Filter by favorite status","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filter by favorite status","title":"Is Favorite"}},{"name":"tags","in":"query","description":"Filter by tags","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Filter by tags","title":"Tags"}},{"name":"mode","in":"query","description":"Filter by mode (flow-chat | flow-job | instruction-chat | multi-agent-flow-chat | multi-agent-flow-job | multi-agent-instruction-chat)","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by mode (flow-chat | flow-job | instruction-chat | multi-agent-flow-chat | multi-agent-flow-job | multi-agent-instruction-chat)","title":"Mode"}},{"name":"name","in":"query","description":"Filter by name (fuzzy match)","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by name (fuzzy match)","title":"Name"}},{"name":"order","in":"query","description":"order by: 'recent'(default) or 'oldest'","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"order by: 'recent'(default) or 'oldest'","default":"recent","title":"Order"}},{"name":"exclude_draft","in":"query","description":"Exclude draft agents","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Exclude draft agents","default":false,"title":"Exclude Draft"}},{"name":"agent_ids","in":"query","description":"Filter by agent ids","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Filter by agent ids","title":"Agent Ids"}},{"name":"type","in":"query","description":"Filter by agent type ('single-agent' | 'multi-agent')","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent type ('single-agent' | 'multi-agent')","title":"Type"}},{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentListResponse"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"AgentListResponse":{"properties":{"page_num":{"type":"integer","title":"Page Num","description":"Current page number"},"page_size":{"type":"integer","title":"Page Size","description":"Number of items per page"},"total_count":{"type":"integer","title":"Total Count","description":"Total number of items"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total number of pages"},"has_next_page":{"type":"boolean","title":"Has Next Page","description":"Whether there is a next page"},"data":{"items":{"$ref":"#/components/schemas/AgentEntity"},"type":"array","title":"Data","description":"List of items"}},"type":"object","required":["page_num","page_size","total_count","total_pages","has_next_page","data"],"title":"AgentListResponse","description":"Paginated response for flows."},"AgentEntity":{"properties":{"icon_type":{"anyOf":[{"type":"string","enum":["emoji","file_id","url"]},{"type":"null"}],"title":"Icon Type","description":"Source type: 'emoji' or 'url'"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon","description":"Raw icon value: emoji char, full URL, or gallery key"},"icon_background":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Background","description":"Hex background color behind the icon","default":"#FFF"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"created_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Role"},"updated_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Role"},"created_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Time"},"updated_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated Time"},"mode":{"$ref":"#/components/schemas/AgentMode","description":"Workflow mode, e.g., chat or job"},"type":{"type":"string","description":"Agent type (single-agent, multi-agent) - legacy types (flow, instruction, tool) are deprecated"},"name":{"type":"string","title":"Name","description":"Workflow name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Workflow description","default":""},"abilities":{"anyOf":[{"$ref":"#/components/schemas/AbilityEntity-Output"},{"type":"null"}],"description":"Extend properties","default":{"opening_statement":"","suggested_questions":[],"suggested_questions_after_answer":{"enabled":false},"text_to_speech":{"enabled":false,"language":"","voice":""},"speech_to_text":{"enabled":false},"retriever_resource":{"enabled":false},"sensitive_word_avoidance":{"enabled":false},"file_upload":{"allowed_file_extensions":[],"allowed_file_types":["image","video","audio","document"],"allowed_file_upload_methods":["local_file","remote_url"],"enabled":true,"fileUploadConfig":{"audio_file_size_limit":50,"batch_count_limit":5,"file_size_limit":15,"image_file_size_limit":10,"video_file_size_limit":100,"workflow_file_upload_limit":10},"image_config":{"detail":"low"},"number_limits":4}}},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","description":"List of tags","default":[]},"is_favorite":{"type":"boolean","title":"Is Favorite","description":"Indicates if the item is marked as favorite","default":false},"extend_properties":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Extend Properties","description":"Extend properties"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Workflow ID"},"tenant_id":{"type":"string","title":"Tenant Id","description":"Tenant ID of creator"},"tenant_unit_id":{"type":"string","title":"Tenant Unit Id","description":"Tenant Unit ID of creator"},"status":{"type":"string","title":"Status","description":"Workflow status","default":"ACTIVE"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code","description":"Workflow status"},"definition_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Definition Id","description":"Definition id"},"definition_type":{"anyOf":[{"$ref":"#/components/schemas/AgentDefinitionType"},{"type":"null"}],"description":"definition_type"},"ab_test_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ab Test Id","description":"AB test config ID"},"ab_test_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ab Test Enabled","description":"Indicates if AB testing is enabled","default":false},"usage_guide":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Usage Guide","description":"Usage guide"},"visibility":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Resource visibility"},"agent_definition_entity":{"anyOf":[{"type":"object","properties":{}},{"$ref":"#/components/schemas/AgentInstructionEntity"},{"type":"null"}],"title":"Agent Definition Entity","description":"Agent definition entity"},"variables":{"anyOf":[{"items":{"type":"object","properties":{}},"type":"array"},{"type":"null"}],"title":"Variables","description":"Variables"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url","readOnly":true}},"type":"object","required":["mode","type","name","tenant_id","tenant_unit_id","icon_url"],"title":"AgentEntity","description":"Full Agent model with additional fields used for responses."},"AgentMode":{"type":"string","enum":["flow-job","flow-chat","instruction-chat","multi-agent-flow-job","multi-agent-flow-chat","multi-agent-instruction-chat"],"title":"AgentMode"},"AbilityEntity-Output":{"properties":{"opening_statement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Opening Statement","description":"Opening statement","default":""},"suggested_questions":{"items":{"type":"string"},"type":"array","title":"Suggested Questions","description":"List of suggested questions","default":[]},"suggested_questions_after_answer":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Suggested questions after answer entity","default":{"enabled":true}},"text_to_speech":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Text to speech entity","default":{"enabled":true,"voice":"","language":""}},"speech_to_text":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Speech to text entity","default":{"enabled":true}},"retriever_resource":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Retriever resource entity","default":{"enabled":true}},"sensitive_word_avoidance":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Sensitive word avoidance entity","default":{"enabled":false}},"file_upload":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"File upload entity"}},"type":"object","title":"AbilityEntity","description":"Ability entity"},"AgentDefinitionType":{"type":"string","enum":["flow","instruction","tool"],"title":"AgentDefinitionType"},"AgentInstructionEntity":{"properties":{"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By","description":"Identifier of the creator"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By","description":"Identifier of the last updater"},"created_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Role"},"updated_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Role"},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"Timestamp of creation"},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"Timestamp of last update"},"llm_config":{"description":"Configuration for the LLM model_name","type":"object","properties":{}},"structured_prompt":{"type":"object","title":"Structured Prompt","description":"Structured prompt in JSON format","properties":{}},"text_prompt":{"type":"string","title":"Text Prompt","description":"Textual prompt for the agent"},"tools_config":{"items":{"$ref":"#/components/schemas/AgentToolConfig-Output"},"type":"array","title":"Tools Config","description":"Configuration for tools used by the agent"},"agent_mode":{"type":"string","title":"Agent Mode","description":"Mode of operation for the agent"},"dataset_retrieval_config":{"$ref":"#/components/schemas/DatasetsRetrievalConfig","description":"Configuration for the dataset used"},"product_retrieval_config":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Configuration for the product retrieval used"},"features":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Features","description":"Additional features in JSON format"},"variables":{"anyOf":[{"items":{"type":"object","properties":{}},"type":"array"},{"type":"null"}],"title":"Variables","description":"Variables in JSON format"},"id":{"type":"string","title":"Id","description":"Unique identifier for the Agent Instruction"},"tenant_id":{"type":"string","title":"Tenant Id","description":"Tenant identifier"},"tenant_unit_id":{"type":"string","title":"Tenant Unit Id","description":"Tenant unit identifier"},"agent_id":{"type":"string","title":"Agent Id","description":"Associated agent identifier"},"version":{"type":"string","title":"Version","description":"Version timestamp"},"is_deleted":{"type":"boolean","title":"Is Deleted","description":"Indicates if the item is deleted"}},"type":"object","required":["created_time","updated_time","llm_config","structured_prompt","text_prompt","tools_config","agent_mode","dataset_retrieval_config","id","tenant_id","tenant_unit_id","agent_id","version","is_deleted"],"title":"AgentInstructionEntity"},"AgentToolConfig-Output":{"properties":{"tool":{"$ref":"#/components/schemas/AgentToolEntity","description":"Tool entity"},"prompt":{"type":"string","title":"Prompt","description":"Prompt for the tool"},"approval_mode":{"type":"string","title":"Approval Mode","description":"Mode of approval"},"approval_condition":{"type":"object","title":"Approval Condition","description":"Condition for approval","properties":{}},"enable":{"type":"boolean","title":"Enable","description":"Enable or disable the tool"}},"type":"object","required":["tool","prompt","approval_mode","approval_condition","enable"],"title":"AgentToolConfig"},"AgentToolEntity":{"properties":{"tool_type":{"type":"object","properties":{}},"vendor_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor Id"},"resource_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Id"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_parameters":{"type":"object","title":"Tool Parameters","properties":{}}},"type":"object","required":["tool_type"],"title":"AgentToolEntity","description":"Agent Tool Entity."},"DatasetsRetrievalConfig":{"properties":{"datasets":{"items":{"$ref":"#/components/schemas/DatasetConfig"},"type":"array","title":"Datasets","description":"List of datasets"},"top_k":{"type":"integer","title":"Top K","description":"Top K datasets"},"retrieval_mode":{"type":"string","title":"Retrieval Mode","description":"Retrieval mode, vector or keyword or hybrid"},"tool_enabled":{"type":"boolean","title":"Tool Enabled","description":"Enable or disable the tool","default":false}},"type":"object","required":["datasets","top_k","retrieval_mode"],"title":"DatasetsRetrievalConfig"},"DatasetConfig":{"properties":{"id":{"type":"string","title":"Id","description":"Dataset ID"},"name":{"type":"string","title":"Name","description":"Dataset Name"},"enable":{"type":"boolean","title":"Enable","description":"Enable or disable the dataset"}},"type":"object","required":["id","name","enable"],"title":"DatasetConfig"},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```

## Get Agent

> API Layer: Retrieve a Agent by ID

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Agent"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/agents/{agent_id}":{"get":{"summary":"Get Agent","deprecated":false,"description":"API Layer: Retrieve a Agent by ID","operationId":"get_agent_admin_api_v2_agents__agent_id__get","tags":["Agent"],"parameters":[{"name":"agent_id","in":"path","description":"","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentGetResponse"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"AgentGetResponse":{"properties":{"icon_type":{"anyOf":[{"type":"string","enum":["emoji","file_id","url"]},{"type":"null"}],"title":"Icon Type","description":"Source type: 'emoji' or 'url'"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon","description":"Raw icon value: emoji char, full URL, or gallery key"},"icon_background":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Background","description":"Hex background color behind the icon","default":"#FFF"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"created_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Role"},"updated_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Role"},"created_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Time"},"updated_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated Time"},"mode":{"$ref":"#/components/schemas/AgentMode","description":"Workflow mode, e.g., chat or job"},"type":{"type":"string","description":"Agent type (single-agent, multi-agent) - legacy types (flow, instruction, tool) are deprecated"},"name":{"type":"string","title":"Name","description":"Workflow name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Workflow description","default":""},"abilities":{"anyOf":[{"$ref":"#/components/schemas/AbilityEntity-Output"},{"type":"null"}],"description":"Extend properties","default":{"opening_statement":"","suggested_questions":[],"suggested_questions_after_answer":{"enabled":false},"text_to_speech":{"enabled":false,"language":"","voice":""},"speech_to_text":{"enabled":false},"retriever_resource":{"enabled":false},"sensitive_word_avoidance":{"enabled":false},"file_upload":{"allowed_file_extensions":[],"allowed_file_types":["image","video","audio","document"],"allowed_file_upload_methods":["local_file","remote_url"],"enabled":true,"fileUploadConfig":{"audio_file_size_limit":50,"batch_count_limit":5,"file_size_limit":15,"image_file_size_limit":10,"video_file_size_limit":100,"workflow_file_upload_limit":10},"image_config":{"detail":"low"},"number_limits":4}}},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","description":"List of tags","default":[]},"is_favorite":{"type":"boolean","title":"Is Favorite","description":"Indicates if the item is marked as favorite","default":false},"extend_properties":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Extend Properties","description":"Extend properties"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Workflow ID"},"tenant_id":{"type":"string","title":"Tenant Id","description":"Tenant ID of creator"},"tenant_unit_id":{"type":"string","title":"Tenant Unit Id","description":"Tenant Unit ID of creator"},"status":{"type":"string","title":"Status","description":"Workflow status","default":"ACTIVE"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code","description":"Workflow status"},"definition_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Definition Id","description":"Definition id"},"definition_type":{"anyOf":[{"$ref":"#/components/schemas/AgentDefinitionType"},{"type":"null"}],"description":"definition_type"},"ab_test_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ab Test Id","description":"AB test config ID"},"ab_test_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ab Test Enabled","description":"Indicates if AB testing is enabled","default":false},"usage_guide":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Usage Guide","description":"Usage guide"},"visibility":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Resource visibility"},"agent_definition_entity":{"anyOf":[{"type":"object","properties":{}},{"$ref":"#/components/schemas/AgentInstructionEntity"},{"type":"null"}],"title":"Agent Definition Entity","description":"Agent definition entity"},"variables":{"anyOf":[{"items":{"type":"object","properties":{}},"type":"array"},{"type":"null"}],"title":"Variables","description":"Variables"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url","readOnly":true}},"type":"object","required":["mode","type","name","tenant_id","tenant_unit_id","icon_url"],"title":"AgentGetResponse","description":"Response model for created workflow, which includes all fields of AgentItem."},"AgentMode":{"type":"string","enum":["flow-job","flow-chat","instruction-chat","multi-agent-flow-job","multi-agent-flow-chat","multi-agent-instruction-chat"],"title":"AgentMode"},"AbilityEntity-Output":{"properties":{"opening_statement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Opening Statement","description":"Opening statement","default":""},"suggested_questions":{"items":{"type":"string"},"type":"array","title":"Suggested Questions","description":"List of suggested questions","default":[]},"suggested_questions_after_answer":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Suggested questions after answer entity","default":{"enabled":true}},"text_to_speech":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Text to speech entity","default":{"enabled":true,"voice":"","language":""}},"speech_to_text":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Speech to text entity","default":{"enabled":true}},"retriever_resource":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Retriever resource entity","default":{"enabled":true}},"sensitive_word_avoidance":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Sensitive word avoidance entity","default":{"enabled":false}},"file_upload":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"File upload entity"}},"type":"object","title":"AbilityEntity","description":"Ability entity"},"AgentDefinitionType":{"type":"string","enum":["flow","instruction","tool"],"title":"AgentDefinitionType"},"AgentInstructionEntity":{"properties":{"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By","description":"Identifier of the creator"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By","description":"Identifier of the last updater"},"created_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Role"},"updated_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Role"},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"Timestamp of creation"},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"Timestamp of last update"},"llm_config":{"description":"Configuration for the LLM model_name","type":"object","properties":{}},"structured_prompt":{"type":"object","title":"Structured Prompt","description":"Structured prompt in JSON format","properties":{}},"text_prompt":{"type":"string","title":"Text Prompt","description":"Textual prompt for the agent"},"tools_config":{"items":{"$ref":"#/components/schemas/AgentToolConfig-Output"},"type":"array","title":"Tools Config","description":"Configuration for tools used by the agent"},"agent_mode":{"type":"string","title":"Agent Mode","description":"Mode of operation for the agent"},"dataset_retrieval_config":{"$ref":"#/components/schemas/DatasetsRetrievalConfig","description":"Configuration for the dataset used"},"product_retrieval_config":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Configuration for the product retrieval used"},"features":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Features","description":"Additional features in JSON format"},"variables":{"anyOf":[{"items":{"type":"object","properties":{}},"type":"array"},{"type":"null"}],"title":"Variables","description":"Variables in JSON format"},"id":{"type":"string","title":"Id","description":"Unique identifier for the Agent Instruction"},"tenant_id":{"type":"string","title":"Tenant Id","description":"Tenant identifier"},"tenant_unit_id":{"type":"string","title":"Tenant Unit Id","description":"Tenant unit identifier"},"agent_id":{"type":"string","title":"Agent Id","description":"Associated agent identifier"},"version":{"type":"string","title":"Version","description":"Version timestamp"},"is_deleted":{"type":"boolean","title":"Is Deleted","description":"Indicates if the item is deleted"}},"type":"object","required":["created_time","updated_time","llm_config","structured_prompt","text_prompt","tools_config","agent_mode","dataset_retrieval_config","id","tenant_id","tenant_unit_id","agent_id","version","is_deleted"],"title":"AgentInstructionEntity"},"AgentToolConfig-Output":{"properties":{"tool":{"$ref":"#/components/schemas/AgentToolEntity","description":"Tool entity"},"prompt":{"type":"string","title":"Prompt","description":"Prompt for the tool"},"approval_mode":{"type":"string","title":"Approval Mode","description":"Mode of approval"},"approval_condition":{"type":"object","title":"Approval Condition","description":"Condition for approval","properties":{}},"enable":{"type":"boolean","title":"Enable","description":"Enable or disable the tool"}},"type":"object","required":["tool","prompt","approval_mode","approval_condition","enable"],"title":"AgentToolConfig"},"AgentToolEntity":{"properties":{"tool_type":{"type":"object","properties":{}},"vendor_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor Id"},"resource_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Id"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_parameters":{"type":"object","title":"Tool Parameters","properties":{}}},"type":"object","required":["tool_type"],"title":"AgentToolEntity","description":"Agent Tool Entity."},"DatasetsRetrievalConfig":{"properties":{"datasets":{"items":{"$ref":"#/components/schemas/DatasetConfig"},"type":"array","title":"Datasets","description":"List of datasets"},"top_k":{"type":"integer","title":"Top K","description":"Top K datasets"},"retrieval_mode":{"type":"string","title":"Retrieval Mode","description":"Retrieval mode, vector or keyword or hybrid"},"tool_enabled":{"type":"boolean","title":"Tool Enabled","description":"Enable or disable the tool","default":false}},"type":"object","required":["datasets","top_k","retrieval_mode"],"title":"DatasetsRetrievalConfig"},"DatasetConfig":{"properties":{"id":{"type":"string","title":"Id","description":"Dataset ID"},"name":{"type":"string","title":"Name","description":"Dataset Name"},"enable":{"type":"boolean","title":"Enable","description":"Enable or disable the dataset"}},"type":"object","required":["id","name","enable"],"title":"DatasetConfig"},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```

## Get Agent By Code

> API Layer: Retrieve a Agent by code

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Agent"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/agents/code/{agent_code}":{"get":{"summary":"Get Agent By Code","deprecated":false,"description":"API Layer: Retrieve a Agent by code","operationId":"get_agent_by_code_admin_api_v2_agents_code__agent_code__get","tags":["Agent"],"parameters":[{"name":"agent_code","in":"path","description":"","required":true,"schema":{"type":"string","title":"Agent Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentGetResponse"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"AgentGetResponse":{"properties":{"icon_type":{"anyOf":[{"type":"string","enum":["emoji","file_id","url"]},{"type":"null"}],"title":"Icon Type","description":"Source type: 'emoji' or 'url'"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon","description":"Raw icon value: emoji char, full URL, or gallery key"},"icon_background":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Background","description":"Hex background color behind the icon","default":"#FFF"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"created_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Role"},"updated_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Role"},"created_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Time"},"updated_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated Time"},"mode":{"$ref":"#/components/schemas/AgentMode","description":"Workflow mode, e.g., chat or job"},"type":{"type":"string","description":"Agent type (single-agent, multi-agent) - legacy types (flow, instruction, tool) are deprecated"},"name":{"type":"string","title":"Name","description":"Workflow name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Workflow description","default":""},"abilities":{"anyOf":[{"$ref":"#/components/schemas/AbilityEntity-Output"},{"type":"null"}],"description":"Extend properties","default":{"opening_statement":"","suggested_questions":[],"suggested_questions_after_answer":{"enabled":false},"text_to_speech":{"enabled":false,"language":"","voice":""},"speech_to_text":{"enabled":false},"retriever_resource":{"enabled":false},"sensitive_word_avoidance":{"enabled":false},"file_upload":{"allowed_file_extensions":[],"allowed_file_types":["image","video","audio","document"],"allowed_file_upload_methods":["local_file","remote_url"],"enabled":true,"fileUploadConfig":{"audio_file_size_limit":50,"batch_count_limit":5,"file_size_limit":15,"image_file_size_limit":10,"video_file_size_limit":100,"workflow_file_upload_limit":10},"image_config":{"detail":"low"},"number_limits":4}}},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","description":"List of tags","default":[]},"is_favorite":{"type":"boolean","title":"Is Favorite","description":"Indicates if the item is marked as favorite","default":false},"extend_properties":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Extend Properties","description":"Extend properties"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Workflow ID"},"tenant_id":{"type":"string","title":"Tenant Id","description":"Tenant ID of creator"},"tenant_unit_id":{"type":"string","title":"Tenant Unit Id","description":"Tenant Unit ID of creator"},"status":{"type":"string","title":"Status","description":"Workflow status","default":"ACTIVE"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code","description":"Workflow status"},"definition_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Definition Id","description":"Definition id"},"definition_type":{"anyOf":[{"$ref":"#/components/schemas/AgentDefinitionType"},{"type":"null"}],"description":"definition_type"},"ab_test_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ab Test Id","description":"AB test config ID"},"ab_test_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ab Test Enabled","description":"Indicates if AB testing is enabled","default":false},"usage_guide":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Usage Guide","description":"Usage guide"},"visibility":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Resource visibility"},"agent_definition_entity":{"anyOf":[{"type":"object","properties":{}},{"$ref":"#/components/schemas/AgentInstructionEntity"},{"type":"null"}],"title":"Agent Definition Entity","description":"Agent definition entity"},"variables":{"anyOf":[{"items":{"type":"object","properties":{}},"type":"array"},{"type":"null"}],"title":"Variables","description":"Variables"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url","readOnly":true}},"type":"object","required":["mode","type","name","tenant_id","tenant_unit_id","icon_url"],"title":"AgentGetResponse","description":"Response model for created workflow, which includes all fields of AgentItem."},"AgentMode":{"type":"string","enum":["flow-job","flow-chat","instruction-chat","multi-agent-flow-job","multi-agent-flow-chat","multi-agent-instruction-chat"],"title":"AgentMode"},"AbilityEntity-Output":{"properties":{"opening_statement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Opening Statement","description":"Opening statement","default":""},"suggested_questions":{"items":{"type":"string"},"type":"array","title":"Suggested Questions","description":"List of suggested questions","default":[]},"suggested_questions_after_answer":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Suggested questions after answer entity","default":{"enabled":true}},"text_to_speech":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Text to speech entity","default":{"enabled":true,"voice":"","language":""}},"speech_to_text":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Speech to text entity","default":{"enabled":true}},"retriever_resource":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Retriever resource entity","default":{"enabled":true}},"sensitive_word_avoidance":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Sensitive word avoidance entity","default":{"enabled":false}},"file_upload":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"File upload entity"}},"type":"object","title":"AbilityEntity","description":"Ability entity"},"AgentDefinitionType":{"type":"string","enum":["flow","instruction","tool"],"title":"AgentDefinitionType"},"AgentInstructionEntity":{"properties":{"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By","description":"Identifier of the creator"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By","description":"Identifier of the last updater"},"created_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Role"},"updated_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Role"},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"Timestamp of creation"},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"Timestamp of last update"},"llm_config":{"description":"Configuration for the LLM model_name","type":"object","properties":{}},"structured_prompt":{"type":"object","title":"Structured Prompt","description":"Structured prompt in JSON format","properties":{}},"text_prompt":{"type":"string","title":"Text Prompt","description":"Textual prompt for the agent"},"tools_config":{"items":{"$ref":"#/components/schemas/AgentToolConfig-Output"},"type":"array","title":"Tools Config","description":"Configuration for tools used by the agent"},"agent_mode":{"type":"string","title":"Agent Mode","description":"Mode of operation for the agent"},"dataset_retrieval_config":{"$ref":"#/components/schemas/DatasetsRetrievalConfig","description":"Configuration for the dataset used"},"product_retrieval_config":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Configuration for the product retrieval used"},"features":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Features","description":"Additional features in JSON format"},"variables":{"anyOf":[{"items":{"type":"object","properties":{}},"type":"array"},{"type":"null"}],"title":"Variables","description":"Variables in JSON format"},"id":{"type":"string","title":"Id","description":"Unique identifier for the Agent Instruction"},"tenant_id":{"type":"string","title":"Tenant Id","description":"Tenant identifier"},"tenant_unit_id":{"type":"string","title":"Tenant Unit Id","description":"Tenant unit identifier"},"agent_id":{"type":"string","title":"Agent Id","description":"Associated agent identifier"},"version":{"type":"string","title":"Version","description":"Version timestamp"},"is_deleted":{"type":"boolean","title":"Is Deleted","description":"Indicates if the item is deleted"}},"type":"object","required":["created_time","updated_time","llm_config","structured_prompt","text_prompt","tools_config","agent_mode","dataset_retrieval_config","id","tenant_id","tenant_unit_id","agent_id","version","is_deleted"],"title":"AgentInstructionEntity"},"AgentToolConfig-Output":{"properties":{"tool":{"$ref":"#/components/schemas/AgentToolEntity","description":"Tool entity"},"prompt":{"type":"string","title":"Prompt","description":"Prompt for the tool"},"approval_mode":{"type":"string","title":"Approval Mode","description":"Mode of approval"},"approval_condition":{"type":"object","title":"Approval Condition","description":"Condition for approval","properties":{}},"enable":{"type":"boolean","title":"Enable","description":"Enable or disable the tool"}},"type":"object","required":["tool","prompt","approval_mode","approval_condition","enable"],"title":"AgentToolConfig"},"AgentToolEntity":{"properties":{"tool_type":{"type":"object","properties":{}},"vendor_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor Id"},"resource_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Id"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_parameters":{"type":"object","title":"Tool Parameters","properties":{}}},"type":"object","required":["tool_type"],"title":"AgentToolEntity","description":"Agent Tool Entity."},"DatasetsRetrievalConfig":{"properties":{"datasets":{"items":{"$ref":"#/components/schemas/DatasetConfig"},"type":"array","title":"Datasets","description":"List of datasets"},"top_k":{"type":"integer","title":"Top K","description":"Top K datasets"},"retrieval_mode":{"type":"string","title":"Retrieval Mode","description":"Retrieval mode, vector or keyword or hybrid"},"tool_enabled":{"type":"boolean","title":"Tool Enabled","description":"Enable or disable the tool","default":false}},"type":"object","required":["datasets","top_k","retrieval_mode"],"title":"DatasetsRetrievalConfig"},"DatasetConfig":{"properties":{"id":{"type":"string","title":"Id","description":"Dataset ID"},"name":{"type":"string","title":"Name","description":"Dataset Name"},"enable":{"type":"boolean","title":"Enable","description":"Enable or disable the dataset"}},"type":"object","required":["id","name","enable"],"title":"DatasetConfig"},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```

## Update Agent

> API Layer: Update an existing Agent

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Agent"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/agents/{agent_id}":{"put":{"summary":"Update Agent","deprecated":false,"description":"API Layer: Update an existing Agent","operationId":"update_agent_admin_api_v2_agents__agent_id__put","tags":["Agent"],"parameters":[{"name":"agent_id","in":"path","description":"","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentUpdateResponse"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"AgentUpdateRequest":{"properties":{"icon_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Type","description":"Type of icon used"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon","description":"Icon representation"},"icon_background":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Background","description":"Background color of the icon"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Workflow name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Workflow description"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags","description":"List of tags"},"is_favorite":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Favorite","description":"Indicates if the item is marked as favorite"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Workflow status"},"ab_test_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Ab Test Id","description":"AB test config ID"},"ab_test_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ab Test Enabled","description":"Indicates if AB testing is enabled"},"extend_properties":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Extend Properties","description":"Extend properties"},"usage_guide":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Usage Guide","description":"Usage guide"}},"type":"object","title":"AgentUpdateRequest"},"AgentUpdateResponse":{"properties":{"icon_type":{"anyOf":[{"type":"string","enum":["emoji","file_id","url"]},{"type":"null"}],"title":"Icon Type","description":"Source type: 'emoji' or 'url'"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon","description":"Raw icon value: emoji char, full URL, or gallery key"},"icon_background":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Background","description":"Hex background color behind the icon","default":"#FFF"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"created_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Role"},"updated_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Role"},"created_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Time"},"updated_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated Time"},"mode":{"$ref":"#/components/schemas/AgentMode","description":"Workflow mode, e.g., chat or job"},"type":{"type":"string","description":"Agent type (single-agent, multi-agent) - legacy types (flow, instruction, tool) are deprecated"},"name":{"type":"string","title":"Name","description":"Workflow name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Workflow description","default":""},"abilities":{"anyOf":[{"$ref":"#/components/schemas/AbilityEntity-Output"},{"type":"null"}],"description":"Extend properties","default":{"opening_statement":"","suggested_questions":[],"suggested_questions_after_answer":{"enabled":false},"text_to_speech":{"enabled":false,"language":"","voice":""},"speech_to_text":{"enabled":false},"retriever_resource":{"enabled":false},"sensitive_word_avoidance":{"enabled":false},"file_upload":{"allowed_file_extensions":[],"allowed_file_types":["image","video","audio","document"],"allowed_file_upload_methods":["local_file","remote_url"],"enabled":true,"fileUploadConfig":{"audio_file_size_limit":50,"batch_count_limit":5,"file_size_limit":15,"image_file_size_limit":10,"video_file_size_limit":100,"workflow_file_upload_limit":10},"image_config":{"detail":"low"},"number_limits":4}}},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","description":"List of tags","default":[]},"is_favorite":{"type":"boolean","title":"Is Favorite","description":"Indicates if the item is marked as favorite","default":false},"extend_properties":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Extend Properties","description":"Extend properties"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Workflow ID"},"tenant_id":{"type":"string","title":"Tenant Id","description":"Tenant ID of creator"},"tenant_unit_id":{"type":"string","title":"Tenant Unit Id","description":"Tenant Unit ID of creator"},"status":{"type":"string","title":"Status","description":"Workflow status","default":"ACTIVE"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code","description":"Workflow status"},"definition_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Definition Id","description":"Definition id"},"definition_type":{"anyOf":[{"$ref":"#/components/schemas/AgentDefinitionType"},{"type":"null"}],"description":"definition_type"},"ab_test_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ab Test Id","description":"AB test config ID"},"ab_test_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ab Test Enabled","description":"Indicates if AB testing is enabled","default":false},"usage_guide":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Usage Guide","description":"Usage guide"},"visibility":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Resource visibility"},"agent_definition_entity":{"anyOf":[{"type":"object","properties":{}},{"$ref":"#/components/schemas/AgentInstructionEntity"},{"type":"null"}],"title":"Agent Definition Entity","description":"Agent definition entity"},"variables":{"anyOf":[{"items":{"type":"object","properties":{}},"type":"array"},{"type":"null"}],"title":"Variables","description":"Variables"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url","readOnly":true}},"type":"object","required":["mode","type","name","tenant_id","tenant_unit_id","icon_url"],"title":"AgentUpdateResponse","description":"Response model for created workflow, which includes all fields of AgentItem."},"AgentMode":{"type":"string","enum":["flow-job","flow-chat","instruction-chat","multi-agent-flow-job","multi-agent-flow-chat","multi-agent-instruction-chat"],"title":"AgentMode"},"AbilityEntity-Output":{"properties":{"opening_statement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Opening Statement","description":"Opening statement","default":""},"suggested_questions":{"items":{"type":"string"},"type":"array","title":"Suggested Questions","description":"List of suggested questions","default":[]},"suggested_questions_after_answer":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Suggested questions after answer entity","default":{"enabled":true}},"text_to_speech":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Text to speech entity","default":{"enabled":true,"voice":"","language":""}},"speech_to_text":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Speech to text entity","default":{"enabled":true}},"retriever_resource":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Retriever resource entity","default":{"enabled":true}},"sensitive_word_avoidance":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Sensitive word avoidance entity","default":{"enabled":false}},"file_upload":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"File upload entity"}},"type":"object","title":"AbilityEntity","description":"Ability entity"},"AgentDefinitionType":{"type":"string","enum":["flow","instruction","tool"],"title":"AgentDefinitionType"},"AgentInstructionEntity":{"properties":{"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By","description":"Identifier of the creator"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By","description":"Identifier of the last updater"},"created_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Role"},"updated_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Role"},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"Timestamp of creation"},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"Timestamp of last update"},"llm_config":{"description":"Configuration for the LLM model_name","type":"object","properties":{}},"structured_prompt":{"type":"object","title":"Structured Prompt","description":"Structured prompt in JSON format","properties":{}},"text_prompt":{"type":"string","title":"Text Prompt","description":"Textual prompt for the agent"},"tools_config":{"items":{"$ref":"#/components/schemas/AgentToolConfig-Output"},"type":"array","title":"Tools Config","description":"Configuration for tools used by the agent"},"agent_mode":{"type":"string","title":"Agent Mode","description":"Mode of operation for the agent"},"dataset_retrieval_config":{"$ref":"#/components/schemas/DatasetsRetrievalConfig","description":"Configuration for the dataset used"},"product_retrieval_config":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Configuration for the product retrieval used"},"features":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Features","description":"Additional features in JSON format"},"variables":{"anyOf":[{"items":{"type":"object","properties":{}},"type":"array"},{"type":"null"}],"title":"Variables","description":"Variables in JSON format"},"id":{"type":"string","title":"Id","description":"Unique identifier for the Agent Instruction"},"tenant_id":{"type":"string","title":"Tenant Id","description":"Tenant identifier"},"tenant_unit_id":{"type":"string","title":"Tenant Unit Id","description":"Tenant unit identifier"},"agent_id":{"type":"string","title":"Agent Id","description":"Associated agent identifier"},"version":{"type":"string","title":"Version","description":"Version timestamp"},"is_deleted":{"type":"boolean","title":"Is Deleted","description":"Indicates if the item is deleted"}},"type":"object","required":["created_time","updated_time","llm_config","structured_prompt","text_prompt","tools_config","agent_mode","dataset_retrieval_config","id","tenant_id","tenant_unit_id","agent_id","version","is_deleted"],"title":"AgentInstructionEntity"},"AgentToolConfig-Output":{"properties":{"tool":{"$ref":"#/components/schemas/AgentToolEntity","description":"Tool entity"},"prompt":{"type":"string","title":"Prompt","description":"Prompt for the tool"},"approval_mode":{"type":"string","title":"Approval Mode","description":"Mode of approval"},"approval_condition":{"type":"object","title":"Approval Condition","description":"Condition for approval","properties":{}},"enable":{"type":"boolean","title":"Enable","description":"Enable or disable the tool"}},"type":"object","required":["tool","prompt","approval_mode","approval_condition","enable"],"title":"AgentToolConfig"},"AgentToolEntity":{"properties":{"tool_type":{"type":"object","properties":{}},"vendor_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor Id"},"resource_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Id"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_parameters":{"type":"object","title":"Tool Parameters","properties":{}}},"type":"object","required":["tool_type"],"title":"AgentToolEntity","description":"Agent Tool Entity."},"DatasetsRetrievalConfig":{"properties":{"datasets":{"items":{"$ref":"#/components/schemas/DatasetConfig"},"type":"array","title":"Datasets","description":"List of datasets"},"top_k":{"type":"integer","title":"Top K","description":"Top K datasets"},"retrieval_mode":{"type":"string","title":"Retrieval Mode","description":"Retrieval mode, vector or keyword or hybrid"},"tool_enabled":{"type":"boolean","title":"Tool Enabled","description":"Enable or disable the tool","default":false}},"type":"object","required":["datasets","top_k","retrieval_mode"],"title":"DatasetsRetrievalConfig"},"DatasetConfig":{"properties":{"id":{"type":"string","title":"Id","description":"Dataset ID"},"name":{"type":"string","title":"Name","description":"Dataset Name"},"enable":{"type":"boolean","title":"Enable","description":"Enable or disable the dataset"}},"type":"object","required":["id","name","enable"],"title":"DatasetConfig"},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```

## Delete Agent

> API Layer: Delete a Agent by ID

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Agent"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/agents/{agent_id}":{"delete":{"summary":"Delete Agent","deprecated":false,"description":"API Layer: Delete a Agent by ID","operationId":"delete_agent_admin_api_v2_agents__agent_id__delete","tags":["Agent"],"parameters":[{"name":"agent_id","in":"path","description":"","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"responses":{"204":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","properties":{}}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```

## Invoke Agent Chat

> API Layer: Invoke a Agent

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Agent"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/agents/{agent_id}/chat":{"post":{"summary":"Invoke Agent Chat","deprecated":false,"description":"API Layer: Invoke a Agent","operationId":"invoke_agent_chat_admin_api_v2_agents__agent_id__chat_post","tags":["Agent"],"parameters":[{"name":"agent_id","in":"path","description":"","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentChatInvokeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"string"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"AgentChatInvokeRequest":{"properties":{"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query","default":""},"inputs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Inputs","description":"Input variables"},"streaming":{"type":"boolean","title":"Streaming","default":false},"files":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Files","default":[]},"response_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response Type","default":"wfx"},"wfx_context":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Wfx Context","default":{}},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"}},"type":"object","title":"AgentChatInvokeRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```

## Resume Invoke Agent Chat

> API Layer: Resume Invoke a Agent

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Agent"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/agents/{agent_id}/chat/resume":{"post":{"summary":"Resume Invoke Agent Chat","deprecated":false,"description":"API Layer: Resume Invoke a Agent","operationId":"resume_invoke_agent_chat_admin_api_v2_agents__agent_id__chat_resume_post","tags":["Agent"],"parameters":[{"name":"agent_id","in":"path","description":"","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentChatResumeInvokeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"string"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"AgentChatResumeInvokeRequest":{"properties":{"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query","default":""},"inputs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Inputs","description":"Input variables"},"streaming":{"type":"boolean","title":"Streaming","default":false},"files":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Files","default":[]},"response_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response Type","default":"wfx"},"wfx_context":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Wfx Context","default":{}},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"},"interrupt_inputs":{"type":"object","title":"Interrupt Inputs","properties":{}},"is_interrupted":{"type":"boolean","title":"Is Interrupted"},"flow_run_id":{"type":"string","title":"Flow Run Id"}},"type":"object","required":["interrupt_inputs","is_interrupted","flow_run_id"],"title":"AgentChatResumeInvokeRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```

## Invoke Agent Job

> API Layer: Invoke a Agent

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Agent"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/agents/{agent_id}/job":{"post":{"summary":"Invoke Agent Job","deprecated":false,"description":"API Layer: Invoke a Agent","operationId":"invoke_agent_job_admin_api_v2_agents__agent_id__job_post","tags":["Agent"],"parameters":[{"name":"agent_id","in":"path","description":"","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentJobInvokeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"string"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"AgentJobInvokeRequest":{"properties":{"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query","default":""},"inputs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Inputs","description":"Input variables"},"streaming":{"type":"boolean","title":"Streaming","default":false},"files":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Files","default":[]},"response_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response Type","default":"wfx"},"wfx_context":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Wfx Context","default":{}},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"}},"type":"object","title":"AgentJobInvokeRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```


# Agent Instructions

Manage  Agent Instructions, which are agents configured directly via conversation prompts. These endpoints allow you to create, retrieve, publish, and execute draft Agent instructions.

## Upsert Draft Instruction

> Upsert the draft version of the instruction

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Agent Instructions"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/agents/{agent_id}/instructions/draft":{"put":{"summary":"Upsert Draft Instruction","deprecated":false,"description":"Upsert the draft version of the instruction","operationId":"upsert_draft_instruction_admin_api_v2_agents__agent_id__instructions_draft_put","tags":["Agent Instructions"],"parameters":[{"name":"agent_id","in":"path","description":"The UUID of the agent","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentInstructionCreateRequest","description":"The request body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentInstructionEntity"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"AgentInstructionCreateRequest":{"properties":{"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"created_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Role"},"updated_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Role"},"created_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Time"},"updated_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated Time"},"llm_config":{"description":"Configuration for the LLM model_name","type":"object","properties":{}},"structured_prompt":{"type":"object","title":"Structured Prompt","description":"Structured prompt in JSON format","properties":{}},"text_prompt":{"type":"string","title":"Text Prompt","description":"Textual prompt for the agent"},"tools_config":{"items":{"$ref":"#/components/schemas/AgentToolConfig-Input"},"type":"array","title":"Tools Config","description":"Configuration for tools used by the agent"},"agent_mode":{"type":"string","title":"Agent Mode","description":"Mode of operation for the agent"},"dataset_retrieval_config":{"$ref":"#/components/schemas/DatasetsRetrievalConfig","description":"Configuration for the dataset used"},"product_retrieval_config":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Configuration for the product retrieval used","type":"object","properties":{}},"features":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Features","description":"Additional features in JSON format"},"variables":{"anyOf":[{"items":{"type":"object","properties":{}},"type":"array"},{"type":"null"}],"title":"Variables","description":"Variables in JSON format"}},"type":"object","required":["llm_config","structured_prompt","text_prompt","tools_config","agent_mode","dataset_retrieval_config"],"title":"AgentInstructionCreateRequest"},"AgentToolConfig-Input":{"properties":{"tool":{"$ref":"#/components/schemas/AgentToolEntity","description":"Tool entity"},"prompt":{"type":"string","title":"Prompt","description":"Prompt for the tool"},"approval_mode":{"type":"string","title":"Approval Mode","description":"Mode of approval"},"approval_condition":{"type":"object","title":"Approval Condition","description":"Condition for approval","properties":{}},"enable":{"type":"boolean","title":"Enable","description":"Enable or disable the tool"}},"type":"object","required":["tool","prompt","approval_mode","approval_condition","enable"],"title":"AgentToolConfig"},"AgentToolEntity":{"properties":{"tool_type":{"type":"object","properties":{}},"vendor_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor Id"},"resource_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Id"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_parameters":{"type":"object","title":"Tool Parameters","properties":{}}},"type":"object","required":["tool_type"],"title":"AgentToolEntity","description":"Agent Tool Entity."},"DatasetsRetrievalConfig":{"properties":{"datasets":{"items":{"$ref":"#/components/schemas/DatasetConfig"},"type":"array","title":"Datasets","description":"List of datasets"},"top_k":{"type":"integer","title":"Top K","description":"Top K datasets"},"retrieval_mode":{"type":"string","title":"Retrieval Mode","description":"Retrieval mode, vector or keyword or hybrid"},"tool_enabled":{"type":"boolean","title":"Tool Enabled","description":"Enable or disable the tool","default":false}},"type":"object","required":["datasets","top_k","retrieval_mode"],"title":"DatasetsRetrievalConfig"},"DatasetConfig":{"properties":{"id":{"type":"string","title":"Id","description":"Dataset ID"},"name":{"type":"string","title":"Name","description":"Dataset Name"},"enable":{"type":"boolean","title":"Enable","description":"Enable or disable the dataset"}},"type":"object","required":["id","name","enable"],"title":"DatasetConfig"},"AgentInstructionEntity":{"properties":{"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By","description":"Identifier of the creator"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By","description":"Identifier of the last updater"},"created_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Role"},"updated_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Role"},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"Timestamp of creation"},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"Timestamp of last update"},"llm_config":{"description":"Configuration for the LLM model_name","type":"object","properties":{}},"structured_prompt":{"type":"object","title":"Structured Prompt","description":"Structured prompt in JSON format","properties":{}},"text_prompt":{"type":"string","title":"Text Prompt","description":"Textual prompt for the agent"},"tools_config":{"items":{"$ref":"#/components/schemas/AgentToolConfig-Output"},"type":"array","title":"Tools Config","description":"Configuration for tools used by the agent"},"agent_mode":{"type":"string","title":"Agent Mode","description":"Mode of operation for the agent"},"dataset_retrieval_config":{"$ref":"#/components/schemas/DatasetsRetrievalConfig","description":"Configuration for the dataset used"},"product_retrieval_config":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Configuration for the product retrieval used"},"features":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Features","description":"Additional features in JSON format"},"variables":{"anyOf":[{"items":{"type":"object","properties":{}},"type":"array"},{"type":"null"}],"title":"Variables","description":"Variables in JSON format"},"id":{"type":"string","title":"Id","description":"Unique identifier for the Agent Instruction"},"tenant_id":{"type":"string","title":"Tenant Id","description":"Tenant identifier"},"tenant_unit_id":{"type":"string","title":"Tenant Unit Id","description":"Tenant unit identifier"},"agent_id":{"type":"string","title":"Agent Id","description":"Associated agent identifier"},"version":{"type":"string","title":"Version","description":"Version timestamp"},"is_deleted":{"type":"boolean","title":"Is Deleted","description":"Indicates if the item is deleted"}},"type":"object","required":["created_time","updated_time","llm_config","structured_prompt","text_prompt","tools_config","agent_mode","dataset_retrieval_config","id","tenant_id","tenant_unit_id","agent_id","version","is_deleted"],"title":"AgentInstructionEntity"},"AgentToolConfig-Output":{"properties":{"tool":{"$ref":"#/components/schemas/AgentToolEntity","description":"Tool entity"},"prompt":{"type":"string","title":"Prompt","description":"Prompt for the tool"},"approval_mode":{"type":"string","title":"Approval Mode","description":"Mode of approval"},"approval_condition":{"type":"object","title":"Approval Condition","description":"Condition for approval","properties":{}},"enable":{"type":"boolean","title":"Enable","description":"Enable or disable the tool"}},"type":"object","required":["tool","prompt","approval_mode","approval_condition","enable"],"title":"AgentToolConfig"},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```

## Get Draft Instruction

> Get the draft version of the instruction

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Agent Instructions"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/agents/{agent_id}/instructions/draft":{"get":{"summary":"Get Draft Instruction","deprecated":false,"description":"Get the draft version of the instruction","operationId":"get_draft_instruction_admin_api_v2_agents__agent_id__instructions_draft_get","tags":["Agent Instructions"],"parameters":[{"name":"agent_id","in":"path","description":"The UUID of the agent","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentInstructionEntity"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"AgentInstructionEntity":{"properties":{"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By","description":"Identifier of the creator"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By","description":"Identifier of the last updater"},"created_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Role"},"updated_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Role"},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"Timestamp of creation"},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"Timestamp of last update"},"llm_config":{"description":"Configuration for the LLM model_name","type":"object","properties":{}},"structured_prompt":{"type":"object","title":"Structured Prompt","description":"Structured prompt in JSON format","properties":{}},"text_prompt":{"type":"string","title":"Text Prompt","description":"Textual prompt for the agent"},"tools_config":{"items":{"$ref":"#/components/schemas/AgentToolConfig-Output"},"type":"array","title":"Tools Config","description":"Configuration for tools used by the agent"},"agent_mode":{"type":"string","title":"Agent Mode","description":"Mode of operation for the agent"},"dataset_retrieval_config":{"$ref":"#/components/schemas/DatasetsRetrievalConfig","description":"Configuration for the dataset used"},"product_retrieval_config":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Configuration for the product retrieval used"},"features":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Features","description":"Additional features in JSON format"},"variables":{"anyOf":[{"items":{"type":"object","properties":{}},"type":"array"},{"type":"null"}],"title":"Variables","description":"Variables in JSON format"},"id":{"type":"string","title":"Id","description":"Unique identifier for the Agent Instruction"},"tenant_id":{"type":"string","title":"Tenant Id","description":"Tenant identifier"},"tenant_unit_id":{"type":"string","title":"Tenant Unit Id","description":"Tenant unit identifier"},"agent_id":{"type":"string","title":"Agent Id","description":"Associated agent identifier"},"version":{"type":"string","title":"Version","description":"Version timestamp"},"is_deleted":{"type":"boolean","title":"Is Deleted","description":"Indicates if the item is deleted"}},"type":"object","required":["created_time","updated_time","llm_config","structured_prompt","text_prompt","tools_config","agent_mode","dataset_retrieval_config","id","tenant_id","tenant_unit_id","agent_id","version","is_deleted"],"title":"AgentInstructionEntity"},"AgentToolConfig-Output":{"properties":{"tool":{"$ref":"#/components/schemas/AgentToolEntity","description":"Tool entity"},"prompt":{"type":"string","title":"Prompt","description":"Prompt for the tool"},"approval_mode":{"type":"string","title":"Approval Mode","description":"Mode of approval"},"approval_condition":{"type":"object","title":"Approval Condition","description":"Condition for approval","properties":{}},"enable":{"type":"boolean","title":"Enable","description":"Enable or disable the tool"}},"type":"object","required":["tool","prompt","approval_mode","approval_condition","enable"],"title":"AgentToolConfig"},"AgentToolEntity":{"properties":{"tool_type":{"type":"object","properties":{}},"vendor_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor Id"},"resource_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Id"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_parameters":{"type":"object","title":"Tool Parameters","properties":{}}},"type":"object","required":["tool_type"],"title":"AgentToolEntity","description":"Agent Tool Entity."},"DatasetsRetrievalConfig":{"properties":{"datasets":{"items":{"$ref":"#/components/schemas/DatasetConfig"},"type":"array","title":"Datasets","description":"List of datasets"},"top_k":{"type":"integer","title":"Top K","description":"Top K datasets"},"retrieval_mode":{"type":"string","title":"Retrieval Mode","description":"Retrieval mode, vector or keyword or hybrid"},"tool_enabled":{"type":"boolean","title":"Tool Enabled","description":"Enable or disable the tool","default":false}},"type":"object","required":["datasets","top_k","retrieval_mode"],"title":"DatasetsRetrievalConfig"},"DatasetConfig":{"properties":{"id":{"type":"string","title":"Id","description":"Dataset ID"},"name":{"type":"string","title":"Name","description":"Dataset Name"},"enable":{"type":"boolean","title":"Enable","description":"Enable or disable the dataset"}},"type":"object","required":["id","name","enable"],"title":"DatasetConfig"},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```

## Publish Draft Instruction

> Get the draft version of the instruction

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Agent Instructions"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/agents/{agent_id}/instructions/publish":{"post":{"summary":"Publish Draft Instruction","deprecated":false,"description":"Get the draft version of the instruction","operationId":"publish_draft_instruction_admin_api_v2_agents__agent_id__instructions_publish_post","tags":["Agent Instructions"],"parameters":[{"name":"agent_id","in":"path","description":"The UUID of the agent","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentInstructionEntity"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"AgentInstructionEntity":{"properties":{"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By","description":"Identifier of the creator"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By","description":"Identifier of the last updater"},"created_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Role"},"updated_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Role"},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"Timestamp of creation"},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"Timestamp of last update"},"llm_config":{"description":"Configuration for the LLM model_name","type":"object","properties":{}},"structured_prompt":{"type":"object","title":"Structured Prompt","description":"Structured prompt in JSON format","properties":{}},"text_prompt":{"type":"string","title":"Text Prompt","description":"Textual prompt for the agent"},"tools_config":{"items":{"$ref":"#/components/schemas/AgentToolConfig-Output"},"type":"array","title":"Tools Config","description":"Configuration for tools used by the agent"},"agent_mode":{"type":"string","title":"Agent Mode","description":"Mode of operation for the agent"},"dataset_retrieval_config":{"$ref":"#/components/schemas/DatasetsRetrievalConfig","description":"Configuration for the dataset used"},"product_retrieval_config":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Configuration for the product retrieval used"},"features":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Features","description":"Additional features in JSON format"},"variables":{"anyOf":[{"items":{"type":"object","properties":{}},"type":"array"},{"type":"null"}],"title":"Variables","description":"Variables in JSON format"},"id":{"type":"string","title":"Id","description":"Unique identifier for the Agent Instruction"},"tenant_id":{"type":"string","title":"Tenant Id","description":"Tenant identifier"},"tenant_unit_id":{"type":"string","title":"Tenant Unit Id","description":"Tenant unit identifier"},"agent_id":{"type":"string","title":"Agent Id","description":"Associated agent identifier"},"version":{"type":"string","title":"Version","description":"Version timestamp"},"is_deleted":{"type":"boolean","title":"Is Deleted","description":"Indicates if the item is deleted"}},"type":"object","required":["created_time","updated_time","llm_config","structured_prompt","text_prompt","tools_config","agent_mode","dataset_retrieval_config","id","tenant_id","tenant_unit_id","agent_id","version","is_deleted"],"title":"AgentInstructionEntity"},"AgentToolConfig-Output":{"properties":{"tool":{"$ref":"#/components/schemas/AgentToolEntity","description":"Tool entity"},"prompt":{"type":"string","title":"Prompt","description":"Prompt for the tool"},"approval_mode":{"type":"string","title":"Approval Mode","description":"Mode of approval"},"approval_condition":{"type":"object","title":"Approval Condition","description":"Condition for approval","properties":{}},"enable":{"type":"boolean","title":"Enable","description":"Enable or disable the tool"}},"type":"object","required":["tool","prompt","approval_mode","approval_condition","enable"],"title":"AgentToolConfig"},"AgentToolEntity":{"properties":{"tool_type":{"type":"object","properties":{}},"vendor_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor Id"},"resource_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Id"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_parameters":{"type":"object","title":"Tool Parameters","properties":{}}},"type":"object","required":["tool_type"],"title":"AgentToolEntity","description":"Agent Tool Entity."},"DatasetsRetrievalConfig":{"properties":{"datasets":{"items":{"$ref":"#/components/schemas/DatasetConfig"},"type":"array","title":"Datasets","description":"List of datasets"},"top_k":{"type":"integer","title":"Top K","description":"Top K datasets"},"retrieval_mode":{"type":"string","title":"Retrieval Mode","description":"Retrieval mode, vector or keyword or hybrid"},"tool_enabled":{"type":"boolean","title":"Tool Enabled","description":"Enable or disable the tool","default":false}},"type":"object","required":["datasets","top_k","retrieval_mode"],"title":"DatasetsRetrievalConfig"},"DatasetConfig":{"properties":{"id":{"type":"string","title":"Id","description":"Dataset ID"},"name":{"type":"string","title":"Name","description":"Dataset Name"},"enable":{"type":"boolean","title":"Enable","description":"Enable or disable the dataset"}},"type":"object","required":["id","name","enable"],"title":"DatasetConfig"},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```

## GET /admin/api/v2/agents/{agent\_id}/instructions

> List Agent Instructions

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Agent Instructions"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/agents/{agent_id}/instructions":{"get":{"summary":"List Agent Instructions","deprecated":false,"description":"","operationId":"list_agent_instructions_admin_api_v2_agents__agent_id__instructions_get","tags":["Agent Instructions"],"parameters":[{"name":"agent_id","in":"path","description":"The UUID of the agent","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"page","in":"query","description":"The page number","required":false,"schema":{"type":"integer","description":"The page number","default":1,"title":"Page"}},{"name":"page_size","in":"query","description":"The number of items per page","required":false,"schema":{"type":"integer","description":"The number of items per page","default":10,"title":"Page Size"}},{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentInstructionListResponse"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"AgentInstructionListResponse":{"properties":{"page_num":{"type":"integer","title":"Page Num","description":"Current page number"},"page_size":{"type":"integer","title":"Page Size","description":"Number of items per page"},"total_count":{"type":"integer","title":"Total Count","description":"Total number of items"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total number of pages"},"has_next_page":{"type":"boolean","title":"Has Next Page","description":"Whether there is a next page"},"data":{"items":{"$ref":"#/components/schemas/AgentInstructionEntity"},"type":"array","title":"Data","description":"List of items"}},"type":"object","required":["page_num","page_size","total_count","total_pages","has_next_page","data"],"title":"AgentInstructionListResponse"},"AgentInstructionEntity":{"properties":{"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By","description":"Identifier of the creator"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By","description":"Identifier of the last updater"},"created_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Role"},"updated_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Role"},"created_time":{"type":"string","format":"date-time","title":"Created Time","description":"Timestamp of creation"},"updated_time":{"type":"string","format":"date-time","title":"Updated Time","description":"Timestamp of last update"},"llm_config":{"description":"Configuration for the LLM model_name","type":"object","properties":{}},"structured_prompt":{"type":"object","title":"Structured Prompt","description":"Structured prompt in JSON format","properties":{}},"text_prompt":{"type":"string","title":"Text Prompt","description":"Textual prompt for the agent"},"tools_config":{"items":{"$ref":"#/components/schemas/AgentToolConfig-Output"},"type":"array","title":"Tools Config","description":"Configuration for tools used by the agent"},"agent_mode":{"type":"string","title":"Agent Mode","description":"Mode of operation for the agent"},"dataset_retrieval_config":{"$ref":"#/components/schemas/DatasetsRetrievalConfig","description":"Configuration for the dataset used"},"product_retrieval_config":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Configuration for the product retrieval used"},"features":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Features","description":"Additional features in JSON format"},"variables":{"anyOf":[{"items":{"type":"object","properties":{}},"type":"array"},{"type":"null"}],"title":"Variables","description":"Variables in JSON format"},"id":{"type":"string","title":"Id","description":"Unique identifier for the Agent Instruction"},"tenant_id":{"type":"string","title":"Tenant Id","description":"Tenant identifier"},"tenant_unit_id":{"type":"string","title":"Tenant Unit Id","description":"Tenant unit identifier"},"agent_id":{"type":"string","title":"Agent Id","description":"Associated agent identifier"},"version":{"type":"string","title":"Version","description":"Version timestamp"},"is_deleted":{"type":"boolean","title":"Is Deleted","description":"Indicates if the item is deleted"}},"type":"object","required":["created_time","updated_time","llm_config","structured_prompt","text_prompt","tools_config","agent_mode","dataset_retrieval_config","id","tenant_id","tenant_unit_id","agent_id","version","is_deleted"],"title":"AgentInstructionEntity"},"AgentToolConfig-Output":{"properties":{"tool":{"$ref":"#/components/schemas/AgentToolEntity","description":"Tool entity"},"prompt":{"type":"string","title":"Prompt","description":"Prompt for the tool"},"approval_mode":{"type":"string","title":"Approval Mode","description":"Mode of approval"},"approval_condition":{"type":"object","title":"Approval Condition","description":"Condition for approval","properties":{}},"enable":{"type":"boolean","title":"Enable","description":"Enable or disable the tool"}},"type":"object","required":["tool","prompt","approval_mode","approval_condition","enable"],"title":"AgentToolConfig"},"AgentToolEntity":{"properties":{"tool_type":{"type":"object","properties":{}},"vendor_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor Id"},"resource_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Id"},"tool_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Name"},"tool_parameters":{"type":"object","title":"Tool Parameters","properties":{}}},"type":"object","required":["tool_type"],"title":"AgentToolEntity","description":"Agent Tool Entity."},"DatasetsRetrievalConfig":{"properties":{"datasets":{"items":{"$ref":"#/components/schemas/DatasetConfig"},"type":"array","title":"Datasets","description":"List of datasets"},"top_k":{"type":"integer","title":"Top K","description":"Top K datasets"},"retrieval_mode":{"type":"string","title":"Retrieval Mode","description":"Retrieval mode, vector or keyword or hybrid"},"tool_enabled":{"type":"boolean","title":"Tool Enabled","description":"Enable or disable the tool","default":false}},"type":"object","required":["datasets","top_k","retrieval_mode"],"title":"DatasetsRetrievalConfig"},"DatasetConfig":{"properties":{"id":{"type":"string","title":"Id","description":"Dataset ID"},"name":{"type":"string","title":"Name","description":"Dataset Name"},"enable":{"type":"boolean","title":"Enable","description":"Enable or disable the dataset"}},"type":"object","required":["id","name","enable"],"title":"DatasetConfig"},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```

## Run Specific Instruction

> Run a specific instruction by ID

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Agent Instruction Runs"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/agents/{agent_id}/instructions/draft/runs":{"post":{"summary":"Run Specific Instruction","deprecated":false,"description":"Run a specific instruction by ID","operationId":"run_specific_instruction_admin_api_v2_agents__agent_id__instructions_draft_runs_post","tags":["Agent Instruction Runs"],"parameters":[{"name":"agent_id","in":"path","description":"","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}},{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentChatInvokeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"string"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"AgentChatInvokeRequest":{"properties":{"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query","default":""},"inputs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Inputs","description":"Input variables"},"streaming":{"type":"boolean","title":"Streaming","default":false},"files":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Files","default":[]},"response_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response Type","default":"wfx"},"wfx_context":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Wfx Context","default":{}},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"}},"type":"object","title":"AgentChatInvokeRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```


# Tools

Manage conversations between users and agents. These endpoints allow you to create, retrieve, update, and delete conversations, and retrieve their associated messages.

## List Tool Vendors

> Returns a paginated list of available tool vendors for the current tenant and unit.\
> \
> \- \*\*Note:\*\* This endpoint only returns metadata about the tool vendors (e.g., ID, name, mode, favorite status).\
> \- To retrieve detailed tool configurations or schema information, use the corresponding \`GET /tools/{mode}\_tools/{id}\` or related detail endpoints.

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Tool"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/tools":{"get":{"summary":"List Tool Vendors","deprecated":false,"description":"Returns a paginated list of available tool vendors for the current tenant and unit.\n\n- **Note:** This endpoint only returns metadata about the tool vendors (e.g., ID, name, mode, favorite status).\n- To retrieve detailed tool configurations or schema information, use the corresponding `GET /tools/{mode}_tools/{id}` or related detail endpoints.","operationId":"list_tool_vendors_admin_api_v2_tools_get","tags":["Tool"],"parameters":[{"name":"page_num","in":"query","description":"Current page number","required":false,"schema":{"type":"integer","description":"Current page number","default":1,"title":"Page Num"}},{"name":"page_size","in":"query","description":"Number of items per page","required":false,"schema":{"type":"integer","description":"Number of items per page","default":14,"title":"Page Size"}},{"name":"is_favorite","in":"query","description":"Filter by favorite status","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filter by favorite status","title":"Is Favorite"}},{"name":"mode","in":"query","description":"Filter by mode, value is flow, builtin","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ToolType"},{"type":"null"}],"description":"Filter by mode, value is flow, builtin","title":"Mode"}},{"name":"order","in":"query","description":"order by: 'recent'(default) or 'oldest'","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"order by: 'recent'(default) or 'oldest'","default":"recent","title":"Order"}},{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolListResponse"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"ToolType":{"type":"string","enum":["flow","builtin","mcp","api"],"title":"ToolType"},"ToolListResponse":{"properties":{"page_num":{"type":"integer","title":"Page Num","description":"Current page number"},"page_size":{"type":"integer","title":"Page Size","description":"Number of items per page"},"total_count":{"type":"integer","title":"Total Count","description":"Total number of tools"},"has_next_page":{"type":"boolean","title":"Has Next Page","description":"Whether there is a next page"},"data":{"items":{"type":"object","properties":{}},"type":"array","title":"Data","description":"List of tools"}},"type":"object","required":["page_num","page_size","total_count","has_next_page","data"],"title":"ToolListResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```

## Get Tool Vendor By Id

> Retrieve common information and metadata for a single tool by its ID.

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Tool"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/tools/{tool_id}":{"get":{"summary":"Get Tool Vendor By Id","deprecated":false,"description":"Retrieve common information and metadata for a single tool by its ID.","operationId":"get_tool_vendor_by_id_admin_api_v2_tools__tool_id__get","tags":["Tool"],"parameters":[{"name":"tool_id","in":"path","description":"Tool id","required":true,"schema":{"type":"string","format":"uuid","description":"Tool ID to fetch","title":"Tool Id"}},{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolVendorItem"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"ToolVendorItem":{"properties":{"icon_type":{"anyOf":[{"type":"string","enum":["emoji","file_id","url"]},{"type":"null"}],"title":"Icon Type","description":"Source type: 'emoji' or 'url'"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon","description":"Raw icon value: emoji char, full URL, or gallery key"},"icon_background":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Background","description":"Hex background color behind the icon","default":"#FFF"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Tool description","default":""},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Tool vendor ID"},"name":{"type":"string","title":"Name","description":"Tool vendor name"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name","description":"Tool vendor display name"},"mode":{"$ref":"#/components/schemas/ToolType","description":"Tool type, e.g., builtin, flow"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By","description":"User ID of creator"},"created_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Name","description":"User name of creator"},"created_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Time","description":"Timestamp of creation"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By","description":"User ID of last updater"},"updated_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Name","description":"User name of updater"},"updated_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated Time","description":"Timestamp of last update"},"is_favorite":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Favorite","description":"Indicates if the item is marked as favorite"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url","readOnly":true}},"type":"object","required":["name","mode","icon_url"],"title":"ToolVendorItem"},"ToolType":{"type":"string","enum":["flow","builtin","mcp","api"],"title":"ToolType"},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```

## Update Tool Vendor

> Update the common information and metadata for a tool by its ID.

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Tool"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/tools/{tool_id}":{"put":{"summary":"Update Tool Vendor","deprecated":false,"description":"Update the common information and metadata for a tool by its ID.","operationId":"update_tool_vendor_admin_api_v2_tools__tool_id__put","tags":["Tool"],"parameters":[{"name":"tool_id","in":"path","description":"Tool id","required":true,"schema":{"type":"string","title":"Tool Id"}},{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolVendorUpdateRequest","description":"Payload containing fields to update for the tool"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolVendorItem"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"ToolVendorUpdateRequest":{"properties":{"icon_type":{"anyOf":[{"type":"string","enum":["emoji","file_id","url"]},{"type":"null"}],"title":"Icon Type","description":"Source type: 'emoji' or 'url'"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon","description":"Raw icon value: emoji char, full URL, or gallery key"},"icon_background":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Background","description":"Hex background color behind the icon","default":"#FFF"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Tool description","default":""},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Tool name"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name","description":"Tool name"}},"type":"object","title":"ToolVendorUpdateRequest"},"ToolVendorItem":{"properties":{"icon_type":{"anyOf":[{"type":"string","enum":["emoji","file_id","url"]},{"type":"null"}],"title":"Icon Type","description":"Source type: 'emoji' or 'url'"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon","description":"Raw icon value: emoji char, full URL, or gallery key"},"icon_background":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Background","description":"Hex background color behind the icon","default":"#FFF"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Tool description","default":""},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Tool vendor ID"},"name":{"type":"string","title":"Name","description":"Tool vendor name"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name","description":"Tool vendor display name"},"mode":{"$ref":"#/components/schemas/ToolType","description":"Tool type, e.g., builtin, flow"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By","description":"User ID of creator"},"created_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Name","description":"User name of creator"},"created_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Time","description":"Timestamp of creation"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By","description":"User ID of last updater"},"updated_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Name","description":"User name of updater"},"updated_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated Time","description":"Timestamp of last update"},"is_favorite":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Favorite","description":"Indicates if the item is marked as favorite"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url","readOnly":true}},"type":"object","required":["name","mode","icon_url"],"title":"ToolVendorItem"},"ToolType":{"type":"string","enum":["flow","builtin","mcp","api"],"title":"ToolType"},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```

## Delete Tool Vendor

> Delete a tool (common metadata) by its ID. No content is returned on success.

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Tool"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/tools/{tool_id}":{"delete":{"summary":"Delete Tool Vendor","deprecated":false,"description":"Delete a tool (common metadata) by its ID. No content is returned on success.","operationId":"delete_tool_vendor_admin_api_v2_tools__tool_id__delete","tags":["Tool"],"parameters":[{"name":"tool_id","in":"path","description":"Tool id","required":true,"schema":{"type":"string","title":"Tool Id"}},{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"responses":{"204":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","properties":{}}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```


# Conversations

Manage conversations between users and agents. These endpoints allow you to create, retrieve, update, and delete conversations and their associated messages.

## List Conversations

> List conversations with pagination and filtering

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Conversations"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/conversations":{"get":{"summary":"List Conversations","deprecated":false,"description":"List conversations with pagination and filtering","operationId":"list_conversations_admin_api_v2_conversations_get","tags":["Conversations"],"parameters":[{"name":"assignment_id","in":"query","description":"Filter by assignment ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by assignment ID","title":"Assignment Id"}},{"name":"agent_id","in":"query","description":"Filter by agent ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by agent ID","title":"Agent Id"}},{"name":"page_num","in":"query","description":"Current page number","required":false,"schema":{"type":"integer","description":"Current page number","default":1,"title":"Page Num"}},{"name":"page_size","in":"query","description":"Items per page","required":false,"schema":{"type":"integer","description":"Items per page","default":20,"title":"Page Size"}},{"name":"order","in":"query","description":"order by: 'recent'(default) or 'oldest'","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"order by: 'recent'(default) or 'oldest'","default":"recent","title":"Order"}},{"name":"status","in":"query","description":"Filter by status","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status","title":"Status"}},{"name":"statuses","in":"query","description":"Filter by statuses","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Filter by statuses","title":"Statuses"}},{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListConversationsResponse"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"ListConversationsResponse":{"properties":{"page_num":{"type":"integer","title":"Page Num","description":"Current page number"},"page_size":{"type":"integer","title":"Page Size","description":"Number of items per page"},"total_count":{"type":"integer","title":"Total Count","description":"Total number of items"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total number of pages","default":1},"has_next_page":{"type":"boolean","title":"Has Next Page","description":"Whether there is a next page"},"data":{"items":{"$ref":"#/components/schemas/GetConversationResponse"},"type":"array","title":"Data","description":"List of conversations"}},"type":"object","required":["page_num","page_size","total_count","has_next_page","data"],"title":"ListConversationsResponse"},"GetConversationResponse":{"properties":{"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"created_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Role"},"updated_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Role"},"id":{"type":"string","title":"Id","description":"Conversation ID"},"topic":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Topic","description":"Conversation topic"},"agent_id":{"type":"string","title":"Agent Id","description":"Agent ID"},"tenant_id":{"type":"string","title":"Tenant Id","description":"Tenant ID"},"tenant_unit_id":{"type":"string","title":"Tenant Unit Id","description":"Tenant Unit ID"},"user_id":{"type":"string","title":"User Id","description":"User ID"},"agent_mode":{"type":"string","title":"Agent Mode","description":"Agent mode"},"extend_properties":{"type":"object","title":"Extend Properties","description":"Extended properties","properties":{}},"invoke_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Invoke From","description":"Invoke from"},"inputs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Inputs","description":"Inputs"},"status":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Workforce run status","default":"running"},"assignment_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assignment Id","description":"Assignment ID"},"created_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Time","description":"Created time"},"updated_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated Time","description":"Updated time"},"created_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Name","description":"Created by name"},"updated_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Name","description":"Updated by name"},"agent_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Type","description":"Agent type"},"message_count":{"type":"integer","title":"Message Count","description":"Message count"}},"type":"object","required":["id","agent_id","tenant_id","tenant_unit_id","user_id","agent_mode","message_count"],"title":"GetConversationResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```

## List Messages By Conversation

> List messages in a conversation with pagination

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Conversations"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/conversations/{conversation_id}/messages":{"get":{"summary":"List Messages By Conversation","deprecated":false,"description":"List messages in a conversation with pagination","operationId":"list_messages_by_conversation_admin_api_v2_conversations__conversation_id__messages_get","tags":["Conversations"],"parameters":[{"name":"conversation_id","in":"path","description":"","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"page","in":"query","description":"Page number","required":false,"schema":{"type":"integer","description":"Page number","default":1,"title":"Page"}},{"name":"page_size","in":"query","description":"Page size","required":false,"schema":{"type":"integer","description":"Page size","default":20,"title":"Page Size"}},{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListMessagesResponse"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"ListMessagesResponse":{"properties":{"page_num":{"type":"integer","title":"Page Num","description":"Current page number"},"page_size":{"type":"integer","title":"Page Size","description":"Number of items per page"},"total_count":{"type":"integer","title":"Total Count","description":"Total number of items"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total number of pages","default":1},"has_next_page":{"type":"boolean","title":"Has Next Page","description":"Whether there is a next page"},"data":{"items":{"$ref":"#/components/schemas/MessageSchema"},"type":"array","title":"Data","description":"List of messages"}},"type":"object","required":["page_num","page_size","total_count","has_next_page","data"],"title":"ListMessagesResponse"},"MessageSchema":{"properties":{"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"created_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Role"},"updated_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Role"},"id":{"type":"string","title":"Id","description":"Message ID"},"tenant_id":{"type":"string","title":"Tenant Id","description":"Tenant ID"},"tenant_unit_id":{"type":"string","title":"Tenant Unit Id","description":"Tenant Unit ID"},"agent_id":{"type":"string","title":"Agent Id","description":"Agent ID"},"user_id":{"type":"string","title":"User Id","description":"User ID"},"conversation_id":{"type":"string","title":"Conversation Id","description":"Conversation ID"},"run_id":{"type":"string","title":"Run Id","description":"Run ID"},"message_from":{"type":"string","title":"Message From","description":"Message from"},"content":{"type":"string","title":"Content","description":"Content"},"requested_time":{"type":"string","format":"date-time","title":"Requested Time","description":"Requested time"},"input_tokens":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Input Tokens","description":"Input tokens","default":0},"answer_tokens":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Answer Tokens","description":"Answer tokens","default":0},"total_tokens":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Tokens","description":"Total tokens","default":0},"feedback":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Feedback","description":"Feedback"},"metadata":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Metadata","description":"Meta data"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"Type"},"user_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Type","description":"User type"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Status"},"event_trace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Trace","description":"Event trace"}},"type":"object","required":["id","tenant_id","tenant_unit_id","agent_id","user_id","conversation_id","run_id","message_from","content","requested_time"],"title":"MessageSchema"},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```

## Create Conversation

> Create a new conversation

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Conversations"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/conversations":{"post":{"summary":"Create Conversation","deprecated":false,"description":"Create a new conversation","operationId":"create_conversation_admin_api_v2_conversations_post","tags":["Conversations"],"parameters":[{"name":"assignment_id","in":"query","description":"Filter by assignment ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by assignment ID","title":"Assignment Id"}},{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationCreateRequest","description":"Conversation create request"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationSchema"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"ConversationCreateRequest":{"properties":{"topic":{"type":"string","title":"Topic","description":"Conversation topic","default":"New Conversation"},"status":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Conversation status","default":"running"},"agent_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Agent Id","description":"Agent ID"},"inputs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Inputs","description":"Inputs"},"assignment_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assignment Id","description":"Assignment ID"}},"type":"object","title":"ConversationCreateRequest"},"ConversationSchema":{"properties":{"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"created_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Role"},"updated_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Role"},"id":{"type":"string","title":"Id","description":"Conversation ID"},"topic":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Topic","description":"Conversation topic"},"agent_id":{"type":"string","title":"Agent Id","description":"Agent ID"},"tenant_id":{"type":"string","title":"Tenant Id","description":"Tenant ID"},"tenant_unit_id":{"type":"string","title":"Tenant Unit Id","description":"Tenant Unit ID"},"user_id":{"type":"string","title":"User Id","description":"User ID"},"agent_mode":{"type":"string","title":"Agent Mode","description":"Agent mode"},"extend_properties":{"type":"object","title":"Extend Properties","description":"Extended properties","properties":{}},"invoke_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Invoke From","description":"Invoke from"},"inputs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Inputs","description":"Inputs"},"status":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Workforce run status","default":"running"},"assignment_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assignment Id","description":"Assignment ID"},"created_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Time","description":"Created time"},"updated_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated Time","description":"Updated time"},"created_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Name","description":"Created by name"},"updated_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Name","description":"Updated by name"},"agent_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Type","description":"Agent type"}},"type":"object","required":["id","agent_id","tenant_id","tenant_unit_id","user_id","agent_mode"],"title":"ConversationSchema"},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```

## Update Conversation

> Update a conversation (currently only supports updating topic)

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Conversations"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/conversations/{conversation_id}":{"patch":{"summary":"Update Conversation","deprecated":false,"description":"Update a conversation (currently only supports updating topic)","operationId":"update_conversation_admin_api_v2_conversations__conversation_id__patch","tags":["Conversations"],"parameters":[{"name":"conversation_id","in":"path","description":"","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","title":"Update Data","properties":{}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationSchema"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"ConversationSchema":{"properties":{"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"created_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Role"},"updated_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Role"},"id":{"type":"string","title":"Id","description":"Conversation ID"},"topic":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Topic","description":"Conversation topic"},"agent_id":{"type":"string","title":"Agent Id","description":"Agent ID"},"tenant_id":{"type":"string","title":"Tenant Id","description":"Tenant ID"},"tenant_unit_id":{"type":"string","title":"Tenant Unit Id","description":"Tenant Unit ID"},"user_id":{"type":"string","title":"User Id","description":"User ID"},"agent_mode":{"type":"string","title":"Agent Mode","description":"Agent mode"},"extend_properties":{"type":"object","title":"Extend Properties","description":"Extended properties","properties":{}},"invoke_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Invoke From","description":"Invoke from"},"inputs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Inputs","description":"Inputs"},"status":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Workforce run status","default":"running"},"assignment_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assignment Id","description":"Assignment ID"},"created_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Time","description":"Created time"},"updated_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated Time","description":"Updated time"},"created_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Name","description":"Created by name"},"updated_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Name","description":"Updated by name"},"agent_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Type","description":"Agent type"}},"type":"object","required":["id","agent_id","tenant_id","tenant_unit_id","user_id","agent_mode"],"title":"ConversationSchema"},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```

## Get Conversation

> Get a conversation by ID

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Conversations"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/conversations/{conversation_id}":{"get":{"summary":"Get Conversation","deprecated":false,"description":"Get a conversation by ID","operationId":"get_conversation_admin_api_v2_conversations__conversation_id__get","tags":["Conversations"],"parameters":[{"name":"conversation_id","in":"path","description":"","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationSchema"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"ConversationSchema":{"properties":{"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"created_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Role"},"updated_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Role"},"id":{"type":"string","title":"Id","description":"Conversation ID"},"topic":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Topic","description":"Conversation topic"},"agent_id":{"type":"string","title":"Agent Id","description":"Agent ID"},"tenant_id":{"type":"string","title":"Tenant Id","description":"Tenant ID"},"tenant_unit_id":{"type":"string","title":"Tenant Unit Id","description":"Tenant Unit ID"},"user_id":{"type":"string","title":"User Id","description":"User ID"},"agent_mode":{"type":"string","title":"Agent Mode","description":"Agent mode"},"extend_properties":{"type":"object","title":"Extend Properties","description":"Extended properties","properties":{}},"invoke_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Invoke From","description":"Invoke from"},"inputs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Inputs","description":"Inputs"},"status":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Workforce run status","default":"running"},"assignment_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assignment Id","description":"Assignment ID"},"created_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Time","description":"Created time"},"updated_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated Time","description":"Updated time"},"created_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Name","description":"Created by name"},"updated_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Name","description":"Updated by name"},"agent_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Type","description":"Agent type"}},"type":"object","required":["id","agent_id","tenant_id","tenant_unit_id","user_id","agent_mode"],"title":"ConversationSchema"},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```

## Delete Conversation

> Delete a conversation and its messages

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Conversations"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/conversations/{conversation_id}":{"delete":{"summary":"Delete Conversation","deprecated":false,"description":"Delete a conversation and its messages","operationId":"delete_conversation_admin_api_v2_conversations__conversation_id__delete","tags":["Conversations"],"parameters":[{"name":"conversation_id","in":"path","description":"","required":true,"schema":{"type":"string","title":"Conversation Id"}}],"responses":{"204":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","properties":{}}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```

## Update Conversation Status

> Update conversation status

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Conversations"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/conversations/{conversation_id}/status":{"patch":{"summary":"Update Conversation Status","deprecated":false,"description":"Update conversation status","operationId":"update_conversation_status_admin_api_v2_conversations__conversation_id__status_patch","tags":["Conversations"],"parameters":[{"name":"conversation_id","in":"path","description":"","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateConversationStatusRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationSchema"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"UpdateConversationStatusRequest":{"properties":{"status":{"anyOf":[{"$ref":"#/components/schemas/WorkforceRunStatus"},{"type":"null"}]}},"type":"object","title":"UpdateConversationStatusRequest"},"WorkforceRunStatus":{"type":"string","enum":["submitted","running","succeeded","failed","stopped","canceled","input-required","partial-succeeded","review-requested","reviewed","unknown"],"title":"WorkforceRunStatus","description":"Workforce Run Status Enum"},"ConversationSchema":{"properties":{"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"created_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Role"},"updated_by_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Role"},"id":{"type":"string","title":"Id","description":"Conversation ID"},"topic":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Topic","description":"Conversation topic"},"agent_id":{"type":"string","title":"Agent Id","description":"Agent ID"},"tenant_id":{"type":"string","title":"Tenant Id","description":"Tenant ID"},"tenant_unit_id":{"type":"string","title":"Tenant Unit Id","description":"Tenant Unit ID"},"user_id":{"type":"string","title":"User Id","description":"User ID"},"agent_mode":{"type":"string","title":"Agent Mode","description":"Agent mode"},"extend_properties":{"type":"object","title":"Extend Properties","description":"Extended properties","properties":{}},"invoke_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Invoke From","description":"Invoke from"},"inputs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Inputs","description":"Inputs"},"status":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}],"description":"Workforce run status","default":"running"},"assignment_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assignment Id","description":"Assignment ID"},"created_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Time","description":"Created time"},"updated_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated Time","description":"Updated time"},"created_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Name","description":"Created by name"},"updated_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By Name","description":"Updated by name"},"agent_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Type","description":"Agent type"}},"type":"object","required":["id","agent_id","tenant_id","tenant_unit_id","user_id","agent_mode"],"title":"ConversationSchema"},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```


# Files

Manage files used by agents or users. These endpoints support file uploads, previews, and importing files directly from URLs.

## POST /admin/api/v2/files/upload

> Upload File

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Files"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/files/upload":{"post":{"summary":"Upload File","deprecated":false,"description":"","operationId":"upload_file_admin_api_v2_files_upload_post","tags":["Files"],"parameters":[{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","title":"File","description":"Upload file"}},"required":["file"]}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadFileResponse"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"UploadFileResponse":{"properties":{"id":{"type":"string","title":"Id","description":"File id"},"tenant_id":{"type":"string","title":"Tenant Id","description":"Tenant id"},"tenant_unit_id":{"type":"string","title":"Tenant Unit Id","description":"Tenant unit id"},"name":{"type":"string","title":"Name","description":"File name"},"size":{"type":"integer","title":"Size","description":"File size"},"ext":{"type":"string","title":"Ext","description":"File ext"},"file_url":{"type":"string","title":"File Url","description":"File url"},"original_url":{"type":"string","title":"Original Url","description":"Original url"}},"type":"object","required":["id","tenant_id","tenant_unit_id","name","size","ext","file_url","original_url"],"title":"UploadFileResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```

## GET /admin/api/v2/files/{file\_id}

> Preview File

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Files"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/files/{file_id}":{"get":{"summary":"Preview File","deprecated":false,"description":"","operationId":"preview_file_admin_api_v2_files__file_id__get","tags":["Files"],"parameters":[{"name":"file_id","in":"path","description":"File id","required":true,"schema":{"type":"string","description":"File id","title":"File Id"}},{"name":"expires","in":"query","description":"Expires","required":true,"schema":{"type":"string","description":"Expires","title":"Expires"}},{"name":"nonce","in":"query","description":"Nonce","required":true,"schema":{"type":"string","description":"Nonce","title":"Nonce"}},{"name":"sig","in":"query","description":"Sig","required":true,"schema":{"type":"string","description":"Sig","title":"Sig"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","properties":{}}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```

## POST /admin/api/v2/files/remote-url/upload

> Remote Url Upload File

```json
{"openapi":"3.0.1","info":{"title":"workfx","version":"1.0.0"},"tags":[{"name":"Files"}],"servers":[{"url":"https://api.workfx.ai","description":"Prod Env"}],"security":[],"paths":{"/admin/api/v2/files/remote-url/upload":{"post":{"summary":"Remote Url Upload File","deprecated":false,"description":"","operationId":"remote_url_upload_file_admin_api_v2_files_remote_url_upload_post","tags":["Files"],"parameters":[{"name":"tenant_id","in":"query","description":"Tenant Id","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Id","title":"Tenant Id"}},{"name":"tenant_unit_id","in":"query","description":"Tenant Unit ID","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tenant Unit ID","title":"Tenant Unit Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoteUrlFileRequest","description":"The remote url"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadFileResponse"}}},"headers":{}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{}}}}}},"components":{"schemas":{"RemoteUrlFileRequest":{"properties":{"url":{"type":"string","title":"Url"}},"type":"object","required":["url"],"title":"RemoteUrlFileRequest"},"UploadFileResponse":{"properties":{"id":{"type":"string","title":"Id","description":"File id"},"tenant_id":{"type":"string","title":"Tenant Id","description":"Tenant id"},"tenant_unit_id":{"type":"string","title":"Tenant Unit Id","description":"Tenant unit id"},"name":{"type":"string","title":"Name","description":"File name"},"size":{"type":"integer","title":"Size","description":"File size"},"ext":{"type":"string","title":"Ext","description":"File ext"},"file_url":{"type":"string","title":"File Url","description":"File url"},"original_url":{"type":"string","title":"Original Url","description":"Original url"}},"type":"object","required":["id","tenant_id","tenant_unit_id","name","size","ext","file_url","original_url"],"title":"UploadFileResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"type":"object","properties":{}},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}
```


# API Key

If you want to enable API mode, you can contact <vincentpo@workfx.ai>


# Privacy Policy

Find all information regarding our Privacy Policy

**WorkfxAI** is committed to providing quality services to you and this policy outlines our ongoing obligations to you in respect of how we manage your Personal Information.

We have adopted the Australian Privacy Principles (APPs) contained in the Privacy Act 1988 (Cth) (the Privacy Act). The NPPs govern the way in which we collect, use, disclose, store, secure and dispose of your Personal Information.

A copy of the Australian Privacy Principles may be obtained from the website of The Office of the Australian Information Commissioner at.

#### **What is Personal Information and why do we collect it?**

Personal Information is information or an opinion that identifies an individual. Examples of Personal Information we collect include: names, addresses, email addresses, phone and facsimile numbers.

This Personal Information is obtained in many ways including **interviews, correspondence, by telephone and facsimile, by email, via our website, from your website, from media and publications, from other publicly available sources, from cookies and from third parties**. We don’t guarantee website links or policy of authorized third parties.

We collect your Personal Information for the primary purpose of providing our services to you, providing information to our clients and marketing. We may also use your Personal Information for secondary purposes closely related to the primary purpose, in circumstances where you would reasonably expect such use or disclosure. You may unsubscribe from our mailing/marketing lists at any time by contacting us in writing.

When we collect Personal Information we will, where appropriate and where possible, explain to you why we are collecting the information and how we plan to use it.

#### **Sensitive Information**

Sensitive information is defined in the Privacy Act to include information or opinion about such things as an individual’s racial or ethnic origin, political opinions, membership of a political association, religious or philosophical beliefs, membership of a trade union or other professional body, criminal record or health information.Sensitive information will be used by us only:

* For the primary purpose for which it was obtained.
* For a secondary purpose that is directly related to the primary purpose.
* With your consent; or where required or authorised by law.

#### **Third Parties**

Where reasonable and practicable to do so, we will collect your Personal Information only from you. However, in some circumstances we may be provided with information by third parties. In such a case we will take reasonable steps to ensure that you are made aware of the information provided to us by the third party.

#### **Disclosure of Personal Information**

Your Personal Information may be disclosed in a number of circumstances including the following:

* Third parties where you consent to the use or disclosure;
* Where required or authorised by law.

#### **Security of Personal Information**

Your Personal Information is stored in a manner that reasonably protects it from misuse and loss and from unauthorized access, modification or disclosure.

When your Personal Information is no longer needed for the purpose for which it was obtained, we will take reasonable steps to destroy or permanently de-identify your Personal Information. However, most of the Personal Information is or will be stored in client files which will be kept by us for a minimum of 6 years.

#### **Access to your Personal Information**

You may access the Personal Information we hold about you and to update and/or correct it, subject to certain exceptions. If you wish to access your Personal Information, please contact us in writing.

**WorkfxAI** will not charge any fee for your access request, but may charge an administrative fee for providing a copy of your Personal Information.

In order to protect your Personal Information we may require identification from you before releasing the requested information.

#### **Maintaining the Quality of your Personal Information**

It is important to us that your Personal Information is up to date. We will take reasonable steps to make sure that your Personal Information is accurate, complete and up-to-date. If you find that the information we have is not up to date or is inaccurate, please advise us as soon as practicable so we can update our records and ensure we can continue to provide quality services to you.

#### **Policy Updates**

This Policy may change from time to time and is available on our website.

#### **Privacy Policy Complaints and Enquiries**

If you have any queries or complaints about our Privacy Policy please contact us at: <vincentpo@workfx.ai>

#### **Disclosures**

WorkfxAI's use and transfer of information received from Google APIs to any other app will adhere to [Google API Services User Data Policy](https://developers.google.com/terms/api-services-user-data-policy#additional_requirements_for_specific_api_scopes), including the Limited Use requirements.


# Terms of Service

Welcome! Please read these terms of service carefully before using our services. By accessing or using our services, you agree to be bound by these terms.

**Use of Services:** By clicking the tick box below, paying for your Subscription or otherwise accepting the benefit of any part of the Solution, you agree to be bound by these Terms which form a binding contractual agreement between you or the company you represent (the **'Client'**, or **'you'**) and Easyshop Ai Technology Pty Ltd an Australian business with ABN **72 673 063 557** trading as WorkfxAI (**'WFX'**, **'our'**, **'we'** or **'us'**). You represent and warrant that you have valid authority to enter into these Terms on behalf of any entity you may represent.

We may change these Terms at any time by notifying you, and your continued use of the Solution following such an update will represent an agreement by you to be bound by the Terms as amended.

In these Terms, capitalized words and phrases have the meanings given to them where they are followed by bolded brackets, or as set out in the Definitions table at the end of these Terms.

### **1. The Solution**

#### 1.1 Order

(a) By submitting an order for the purchase of a Subscription on the Website, or by responding to a quote from us, indicating that you would like us to provide any goods, software or services to you, including Additional Services (Order), you represent and warrant that:\
(i) you have the legal capacity and are of sufficient age to enter into a binding contract with us; and\
(ii) you are authorised to use the debit or credit card you provide with your Order.\
(b) Submitting or agreeing to an Order constitutes your intention and offer to enter into these Terms.

#### 1.2 Your Subscription and The Solution

(a) (The Solution) The Solution includes the Software, the Hosted Services, the Support Services and any agreed Additional Services, to the extent described in your Subscription Tier.\
(b) (Scope of Subscription) Your Subscription includes the benefits and limitations of your Subscription Tier as set out on our Website and in your Order (as may be amended from time to time by notice to you).\
(c) (Term of Subscription) Your Subscription will commence on the date we make the Solution available to you (subject to you paying our Fees), and will continue for the Subscription Period, unless terminated earlier in accordance with these Terms.

#### 1.3 Accounts

(a) (**Accounts**) To submit an Order or to use the Solution, you may be required to sign-up, register and receive an account through the Website (an **Accounts**).

(b) (Provide Information) As part of the Account registration process and as part of your continued use of the Website, you may be required to provide personal information and details, such as your email address, first and last name, preferred username, a secure password, billing, postal and physical addresses, mobile phone number, photos and video, audio files, profile information, payment details, ratings and reviews, verified identifications, verified certifications and authentication, and other information as determined by us from time to time.

(c) (Warranty) You warrant that any information you give to us in the course of completing the Account registration process will always be accurate, honest, correct and up-to-date.

(d) (Acceptance) Once you complete the Account registration process, we may, in our absolute discretion, choose to accept you as a registered user within the Website and provide you with an Account.

(e) (Cancellation) We may, in our absolute discretion, suspend or cancel your Account for any reason, including for any failure by you to comply with these Terms.

#### 1.4 The Software

(a) During the Subscription Period, we grant to you a non-exclusive, non-transferable licence to use the Software and Documentation for the Number of Solution Uses. If your Subscription Tier on the Website does not specify a Number of Solution Uses, your licence to use the Solution under this clause will be limited to one (1) use (the Number of Solution Uses will be one (1)).

(b) We may from time to time, in our absolute discretion, release enhancements to the Software, where **“Enhancements”** means any upgraded, improved, modified or new versions of the Software. Any Enhancements to the Software will not limit or otherwise affect these Terms. Enhancements may cause downtime or delays from time to time, and credits will not be provided for such downtime.

(c) We will provide the Software in accordance with all applicable Laws and industry standards.

### **2. Services**

#### 2.1 Services

We will provide you with:

(a) Hosted Services and Support Services, as set out in the Order for your Subscription, or as agreed by us in writing from time to time; and

(b) additional services from time to time, as set out in any Order accepted by us (Additional Services).

#### 2.2 Client Obligations

You agree to:

(a) provide us with all documentation, information and assistance reasonably required by us to perform the Services; and

(b) provide us with access to any third party or other accounts used by you (including log-in details and passwords), as is reasonably required by us to perform the Services.

#### 2.3 Client Material

(a) You warrant that all information, documentation and other Material you provide to us for the purpose of receiving the Services is complete, accurate and up-to-date.\
(b) You release us from all liability in relation to any loss or damage arising out of or in connection with the Services, to the extent such loss or damage is caused or contributed to by information, documentation or any other Material provided by you being incomplete, inaccurate or out-of-date.

#### 2.4 Review of Services

If you review and approve of a Service, then that will constitute acceptance of responsibility for any errors and omissions within that Service (for example, in any copywriting we prepare for you). We will use our best efforts to ensure there are no such errors or omissions.

#### 2.5 Collection Notice and Privacy

(a) We collect personal information about you in the course of providing you with the Solution, to contact and communicate with you, to respond to your enquiries and for other purposes set out in our Privacy Policy.\
(b) Our Privacy Policy contains more information about how we use, disclose and store your information and details how you can access and correct your personal information.\
(c) By agreeing to these Terms, you agree to be bound by our Privacy Policy

### **3. Fees and Payment**

#### 3.1 FEES

You agree to pay the Fees in the amounts, and at the times, set out in the relevant Order.

#### 3.2 SUBSCRIPTION FEES

You must pay subscription fees to us in the amounts and at the times specified in your Order, or as otherwise agreed in writing (Subscription Fees).

#### 3.3 LATE PAYMENTS

We reserve the right to suspend all or part of the Solution indefinitely if you fail to pay any Fees in accordance with this clause 4.

#### 3.4 NO CHANGE OF MIND REFUNDS

Our Fees are non-refundable for change of mind.

#### 3.5 GST

Unless otherwise indicated, the Fees do not include GST. In relation to any GST payable for a taxable supply by us, you must pay the GST subject to us providing a tax invoice.

#### 3.6 CARD SURCHARGES

We reserve the right to charge credit card surcharges in the event payments are made using a credit, debit or charge card (including Visa, MasterCard or American Express).

### **4. CANCELLATION OF YOUR SUBSCRIPTION**

(a) You may cancel your Subscription by notice to us. Your Subscription will end in the then current billing cycle, and you will be charged for that billing cycle.\
(b) Your licence to the Solution under these Terms will last for the remainder of the then current billing cycle to ensure you have an opportunity to retrieve all data you may need from the Software. Once the then current billing cycles ends, we will have no responsibility to store or otherwise retain any User Data, and you release us in respect of any loss or damage which may arise out of us not retaining any User Data or other Material beyond that point.\
(c) Your access to the Solution will be revoked at the end of the relevant billing cycle in which you cancel your Subscription by notice to us.\
(d) We may cancel your Subscription immediately at any time. If we cancel your Subscription under this clause 5(d), in circumstances where you have not breached any of these Terms, we will issue you with a refund of a pro rata amount of the Subscription Fee, in proportion to the remainder of the period in which you will not have access to your Subscription due to our cancellation.

### **5. UPGRADE AND DOWNGRADES**

(a) You may notify us that you would like to upgrade or downgrade your Subscription Tier at any time. If you do, we will:\
(i) take reasonable steps to promptly provide you with access to the new Subscription Tier; and\
(ii) upon providing such access, apply the new, relevant Subscription Fees, in the billing cycle immediately following the cycle in which your access to the new Subscription Tier was provided, and you will be charged at the new Subscription Fee in that subsequent cycle.\
(b) For the avoidance of doubt, if you choose to downgrade your Subscription, the new Subscription Fees will kick in at the start of the next billing cycle, unless we notify you otherwise. We generally don’t pro-rate downgrades in between billing cycles, however we reserve the right to from time to time.\
(c) If you choose to downgrade your Subscription, you acknowledge and agree we are not liable, and you release us from all claims in relation to, any loss of content, features, or capacity, including any Client Data.

### **6. OBLIGATIONS**

#### 6.1 YOUR OBLIGATIONS

(a) **You must, and must ensure that all Users, comply with these Terms at all times**. You acknowledge and agree that we will have no liability in respect of any damage, loss or expense which arises in connection with your, your Personnel’s, or any User’s, breach of these Terms, and you indemnify us in respect of any such damage, loss or expense.\
(b) You must not, and must not encourage or permit any User, Personnel or any third party to, without our prior written approval:\
(i) upload any inappropriate, offensive, illicit, illegal, pornographic, sexist, homophobic or racist material using the Software;\
(ii) upload any material that is owned or copyrighted by a third party;\
(iii) make copies of the Documentation or the Software;\
(iv) adapt, modify or tamper in any way with the Software;\
(v) remove or alter any copyright, trade mark or other notice on or forming part of the Software or Documentation;\
(vi) act in any way that may harm our reputation or that of associated or interested parties or do anything at all contrary to the interests of us or the Solution;\
(vii) use the Software in a way which infringes the Intellectual Property Rights of any third party;\
(viii) create derivative works from or translate the Software or Documentation;\
(ix) publish or otherwise communicate the Software or Documentation to the public, including by making it available online or sharing it with third parties;\
(x) sell, loan, transfer, sub-licence, hire or otherwise dispose of the Software or Documentation to any third party;\
(xi) decompile or reverse engineer the Software or any part of it, or otherwise attempt to derive its source code;\
(xii) attempt to circumvent any technological protection mechanism or other security feature of the Software; or\
(xiii) permit any use of the Solution in addition to the Number of Solution Uses.\
(c) If you become aware of misuse of your Subscription by any person, any errors in the material on your Subscription or any difficulty in accessing or using your Subscription, please contact us immediately using the contact details or form provided on our Website.

#### 6.2 USER OBLIGATIONS

You agree, and you must ensure that all Users agree:\
(a) to comply with each of your obligations in these Terms;\
(b) not to intimidate, harass, impersonate, stalk, threaten, bully or endanger any other User or distribute unsolicited commercial content, junk mail, spam, bulk content or harassment in connection with the Solution;\
(c) not to upload any inappropriate, offensive, illicit, illegal, pornographic, sexist, homophobic or racist material using the Solution;\
(d) to sign up for a new Solution account (User Account) in order to use the Solution;\
(e) to not share your User Account with any other person;\
(f) not to use the Software for any purposes other than the purpose of the Software, which is to build and deploy AI chains, to be used by Users (Purpose);\
(g) not to integrate the Software with third-party data or Software, or make additions or changes to the Software, (including by incorporating APIs into the Software) other than for the Purpose;\
(h) to not share your User Account information (including your Account information), including log in details or passwords, with any other person and that any use of your User Account or Account by any person who is not the account holder is strictly prohibited. You must immediately notify us of any unauthorized use of your User Account, Account, password, or email, or any other breach or potential breach of the Solution’s security;\
(i) to not use the Solution for any purpose other than for the purpose for which it was designed, including you must not use the Solution in a manner that is illegal or fraudulent or facilitates illegal or fraudulent activity (including requesting or accepting a job which includes illegal activities or purposes);\
(j) not to use the Solution in a way which infringes the Intellectual Property Rights of any third party;\
(k) not to act in any way that may harm our reputation or that of associated or interested parties or do anything at all contrary to the interests of us or the Solution;\
(l) you must not make any automated use of the Solution and you must not copy, reproduce, translate, adapt, vary or modify the Solution without our express written consent;\
(m) that we may change any features of the Solution at any time on notice to you;\
(n) that information given to you through the Software, by us or another User, is general in nature and we take no responsibility for anything caused by any actions you take in reliance on that information; and\
(o) that we may cancel your, or any User’s, Account at any time if we consider, in our absolute discretion, that you or they are in breach of, or are likely to breach, this clause 7.

#### 6.3 HOSTED SERVICES

We will store User Data you upload to the Software using a third-party hosting service selected by us (Hosting Service), subject to the following terms:

(a) **(hosting location)** we may use storage servers to host the Software through cloud-based services, and potentially other locations outside Australia, unless otherwise agreed in writing.

(b) **(service quality)** While we will use our best efforts to select an appropriate hosting provider, we do not guarantee that the Hosting Service will be free from errors or defects or that User Data will be accessible or available at all times.

(c) **(backups & disaster recovery)** In the event that User Data is lost due to a system failure (e.g. a database or webserver crash), we cannot guarantee that any backup will be available, or if available that such a backup will be free from errors or defects.

#### 6.4 SUPPORT SERVICES

If the Solution includes us providing you with support, where necessary to resolve technical issues with the Software (Support Services), unless otherwise specifically agreed in writing:\
(a) We will take reasonable steps to provide Support Services where necessary. You should first endeavor to resolve any issues with the Software internally and we will not assist with issues that are beyond our reasonable control.\
(b) You are responsible for all internal administration and managing access, including storing back-up passwords and assisting your Personnel to access and use the Software.\
(c) You will not have any claim for delay to your access to the Software due to any failure or delay in Support Services.

### **7 POSTED MATERIAL**

#### 7.1 WARRANTIES AND INDEMNITY

(a) By providing or posting any information, Material, or other content in connection with the Software (Posted Material), you represent and warrant that, and must ensure that all Users make equivalent representations and warranties:\
(i) you are authorised to provide the Posted Material (including by being authorised to provide any services that you represent you provide);\
(ii) the Posted Material is free from any harmful, discriminatory, defamatory or maliciously false implications and does not contain any offensive or explicit material;\
(iii) the Posted Material is free from any material that may harm our reputation or that of associated or interested parties;\
(iv) the Posted Material is not “passing off” of any product or service and does not constitute unfair competition;\
(v) the Posted Material does not infringe any Intellectual Property Rights, including copyright, trademarks, business names, patents, Confidential Information, or any other similar proprietary rights, whether registered or unregistered, anywhere in the world;\
(vi) the Posted Material does not contain any viruses or other harmful code, or otherwise compromise the security or integrity of the Solution or any network or system;\
(vii) the Posted Material does not breach or infringe any applicable Laws.\
(b) You indemnify us against all damages, losses, costs and expenses incurred by us arising in connection with any third-party claim that Posted Material infringes any third party’s Intellectual Property Rights.

#### 7.2 REMOVAL

(a) The Software acts as a passive conduit for the online distribution of Posted Material and has no obligation to screen Posted Material. However, we may, in our absolute discretion, review and remove any Posted Material from the Solution at any time without giving any explanation or justification for removing the Posted Material, including if we determine that the Posted Material infringes a third party’s Intellectual Property Rights, or is reasonably likely to.

(b) You agree that you are responsible for keeping and maintaining records of Posted Material.

### **8 INTELLECTUAL PROPERTY AND DATA**

#### 8.1 INFRINGING CONTENT ON THE SOFTWARE

(a) If you become aware of Posted Material, or other Material, on the Software that infringes the Intellectual Property Rights of any person, or is reasonably likely to, please contact us immediately.\
(b) If you submit a complaint to us under clause 9.1(a):\
(i) you warrant that the substance of the complaint is accurate, true, and involves infringement of copyright;\
(ii) you acknowledge and agree that groundless threats of legal proceedings in relation to copyright infringement may be prohibited under applicable law (for example, Australia’s Copyright Act 1968, or equivalent laws wherever you are located);\
(iii) you agree to indemnify Relevance AI in relation to any loss or damage that may arise in relation to your complaint, including in relation to any third-party claim that the complaint contains a groundless threat.

#### 8.2 SOFTWARE CONTENT INTELLECTUAL PROPERTY

(a) **(Our ownership)** We retain ownership of all materials provided to you throughout the course of your Subscription in connection with the Software (including text, graphics, logos, design, icons, images, sound and video recordings, pricing, downloads, and software) (**Software Content**) and reserve all rights in any Intellectual Property Rights owned or licensed by us not expressly granted to you.

(b) **(Licence to you)** You are granted a licence to the Software Content, for the Number of Solution Uses, and you may make a temporary electronic copy of the Software Content for the sole purpose of viewing it and using it for the purposes of the Software. You must not otherwise reproduce, transmit, adapt, distribute, sell, modify or publish any Software Content without prior written consent from us or as otherwise permitted by Law.

#### 8.3 CLIENT DATA

**Our Rights and Obligations**

(a) You grant to us (and our Personnel) a non-exclusive, royalty-free, non-transferable, worldwide, and irrevocable licence to use Client Data to the extent reasonably required to provide the Solution and to improve the Solution.\
(b) We will:\
(i) establish, maintain, enforce, and continuously improve safety and security procedures and safeguards against the unauthorised use, destruction, loss, or alteration of Client Data;\
(ii) not make any undocumented, unreported, or authorised configuration changes to our systems or to the information security controls that secure Client Data, if those changes would materially decrease the protections afforded to Client Data; and\
(iii) notify and keep you notified at all times of our current safety and security procedures and safeguards that are made from time to time.\
(c) We reserve the right to remove any Client Data at any time, for any reason, including where we deem Client Data to be inappropriate, offensive, illicit, illegal, pornographic, sexist, homophobic, or racist.

**Your Obligations and Grant of Licence to Us**

(d) You are responsible for ensuring that:\
(i) you share Client Data only with intended recipients; and\
(ii) all Client Data is appropriate and not offensive.\
(e) You:\
(i) warrant that our use of Client Data will not infringe any third-party Intellectual Property Rights; and\
(ii) indemnify us from and against all losses, claims, expenses, damages, and liabilities (including any taxes, fees, or costs) which arise out of such infringement.

### **9 THIRD PARTY SOFTWARE, TERMS & CONDITIONS**

#### 9.1 THIRD PARTY TERMS

(a) You acknowledge and agree that the terms & conditions of third party suppliers of goods or services (Third Party Terms), including those listed below, may apply to your use of the Solution from time to time (including to any Additional Services) and you agree to the Third Party Terms.

(b) We will not be liable for any loss or damage suffered by you in connection with such Third Party Terms.

(c) You must immediately notify us if you do not agree to such Third Party Terms and if you do not agree to any Third Party Terms, this may affect our ability to meet any agreed schedules for Service delivery.

#### 9.2 THIRD PARTY SOFTWARE INTEGRATIONS

(a) You acknowledge and agree that issues can arise when data is uploaded to software, when data is transferred between different software programs, and when different software programs are integrated together. We cannot guarantee that integration processes between the Software and other software programs will be free from errors, defects or delay.

(b) You agree that we will not be liable for the functionality of any third party goods or services, including any third party software, or for the functionality of the Software if you integrate it with third party software, or change or augment the Software, including by making additions or changes to the Software code, and including by incorporating APIs into the Software.

(c) If you add third party software or software code to the Software, integrate the Software with third party software, or make any other changes to the Software, including the Software code (User Software Changes), then:

* (i) you acknowledge and agree that User Software Changes can have adverse effects on the Solution, including the Software;
* (ii) you will indemnify us in relation to any loss or damage that arises in connection with the User Software Changes;
* (iii) we will not be liable for any failure in the Solution, to the extent such failure is caused or contributed to by a User Software Change;
* (iv) we may require you to change or remove User Software Changes, at our discretion, and if we do so, you must act promptly;
* (v) we may suspend your access to the Solution until you have changed or removed User Software Change; and/or
* (vi) we may change or remove any User Software Change, in our absolute discretion. We will not be liable for loss of data or any other loss or damage you may suffer in relation to our amendment to, or removal of, any User Software Change.

### **10 CONFIDENTIALITY AND PRIVACY**

(a) Except as contemplated by these Terms, a party must not, and must not permit any of its officers, employees, agents, contractors or related companies to, use or disclose to any person any Confidential Information disclosed to it by the other party without the disclosing party’s prior written consent.

(b) You agree to our Privacy Policy, located on our Website, which is incorporated into these Terms by reference. Please read the Privacy Policy carefully as it governs our collection, use, and disclosure of personal information.

(c) Each party must promptly notify the other party if it learns of any potential, actual or suspected loss, misappropriation or unauthorised access to, or disclosure or use of Confidential Information or other compromise of the security, confidentiality, or integrity of Confidential Information.

(d) The notifying party will investigate each potential, actual or suspected Security Breach and assist the other party in connection with any related investigation.

### **11 LIABILITY**

#### 11.1 WARRANTIES AND LIMITATIONS

(a) (Warranties) We warrant that:

* (i) during the Subscription Period, the Software will perform substantially in accordance with the Documentation;
* (ii) during the Subscription Period, the Solution will be provided as described to you in, and subject to, these Terms; and
* (iii) to our knowledge, the use of the Software in accordance with these Terms will not infringe the Intellectual Property Rights of any third party.

(b) (Errors) We will correct any errors, bugs or defects in the Software which arise during the Subscription Period and which are notified to us by you, unless the errors, bugs or defects:

* (i) result from the interaction of the Software with any other solution or computer hardware, software or services not approved in writing by us;
* (ii) result from any misuse of the Software; or
* (iii) result from the use of the Software by you other than in accordance with these Terms or the Documentation.

(c) (Service Limitations) The Solution is made available to you strictly on an ‘as is’ basis. Without limitation, you acknowledge and agree that we cannot guarantee that:

* (i) the Solution will be free from errors or defects;
* (ii) the Solution will be accessible at all times;
* (iii) messages sent through the Solution will be delivered promptly, or delivered at all;
* (iv) information you receive or supply through the Solution will be secure or confidential; or
* (v) any information provided through the Solution is accurate or true.

(d) You acknowledge and agree that:

* (i) we are not liable for any unauthorised use, destruction, loss, damage or alteration to User Data, including due to hacking, malware, ransomware, viruses, malicious computer code or other forms of interference;
* (ii) Any information provided to you as part of or in connection with the Solution or the Services is general in nature, may not be suitable for your circumstances and does not constitute financial, legal or any other kind of professional advice; and
* (iii) it is your responsibility to comply with applicable Laws relevant to your business, including industrial relations Laws and privacy Laws.

(e) (Exclusion) To the maximum extent permitted by applicable law, all express or implied representations and warranties (whether relating to fitness for purpose or performance, or otherwise) not expressly stated in these Terms are excluded.(f) (Consumer law) Nothing in these Terms is intended to limit the operation of the Australian Consumer Law contained in the Competition and Consumer Act 2010 (Cth) (ACL). Under the ACL, you may be entitled to certain remedies (like a refund, replacement or repair) if there is a failure with the goods or services we provide.

#### 11.2 LIMITATION OF LIABILITY

(a) (Limitation of liability) To the maximum extent permitted by applicable law, our total aggregate liability to you for any loss or damage under or in connection with these Terms or the Solution is limited to the total Fees paid by you in the three months preceding the first incident that resulted in the liability.(b) (Indemnity) You agree to indemnify and hold harmless Relevance AI, its officers, employees, and agents ("those indemnified") from and against any loss or liability (including reasonable legal costs) incurred by those indemnified, where such loss or liability arises from:

* (i) Your breach of these Terms, or
* (ii) negligent, fraudulent or criminal act or omission.

(c) (Consequential loss) We will not be liable for any incidental, special or consequential loss or damages, or damages for loss of data, business or business opportunity, goodwill, anticipated savings, profits or revenue arising under or in connection with these Terms or any goods or services provided by us, except to the extent this liability cannot be excluded under the Competition and Consumer Act 2010 (Cth) or any other applicable law.

### **12 CANCELLATION, DISPUTES AND TERMINATION**

#### 12.1 DISPUTE RESOLUTION

(a) A party claiming that a dispute has arisen under or in connection with this agreement must not commence court proceedings arising from or relating to the dispute, other than a claim for urgent interlocutory relief, unless that party has complied with the requirements of this clause.

(b) A party that requires resolution of a dispute which arises under or in connection with this agreement must give the other party or parties to the dispute written notice containing reasonable details of the dispute and requiring its resolution under this clause.

(c) Once the dispute notice has been given, each party to the dispute must then use its best efforts to resolve the dispute in good faith. If the dispute is not resolved within a period of 14 days (or such other period as agreed by the parties in writing) after the date of the notice, any party to the dispute may take legal proceedings to resolve the dispute.

#### 12.2 TERMINATION BY US

(a) We may terminate these Terms or any Subscription in whole or in part immediately by written notice to you, at any time for any reason, including if:

* (i) You, a member of your Personnel, or a User, are in breach of any term of these Terms; or
* (ii) You become subject to any form of insolvency or bankruptcy administration.
* (iii) If your usage reaches exceptionally high levels—exceeding typical usage on our platform—we may conduct a review and may require adjustments (including but not limited to managing request frequency, suspending account service). In such cases, we may work with you to modify your plan and better accommodate needs that go beyond standard usage patterns. If a user receives more than two warnings for abnormal usage, we reserve the right to suspend the account immediately.

(b) If we terminate these Terms under this clause 13, in circumstances where you have not breached any of these Terms, we will issue you with a refund of a pro rata amount of the current 30 day period’s Subscription Fee, in proportion to the remainder of the 30 day period in which you will not have access to your Subscription.

#### 12.3 TERMINATION BY CLIENT

You may terminate these Terms if:

* (a) We have committed a material breach of these Terms and have failed to remedy the breach within 30 days’ of receipt of written notice from you; or
* (b) We become subject to any form of insolvency or bankruptcy administration.

If you validly terminate in accordance with this clause 13, no further fees will be payable by you (unless later found that such termination was invalid).

### **13 FORCE MAJEURE**

(a) We will not be liable for any delay or failure to perform its obligations under this agreement if such delay or failure arises out of a Force Majeure Event.\
(b) If a Force Majeure Event occurs, we must use reasonable endeavors to notify you of:\
(i) reasonable details of the Force Majeure Event; and\
(ii) so far as is known, the probable extent to which We will be unable to perform or be delayed in performing its obligations under this agreement.\
(c) Subject to compliance with clause 14(b), our relevant obligation will be suspended during the Force Majeure Event to the extent that it is affected by the Force Majeure Event.\
(d) For the purposes of this agreement, a ‘Force Majeure Event’ means any:\
(i) act of God, lightning strike, meteor strike, earthquake, storm, flood, landslide, explosion or fire;\
(ii) strikes or other industrial action outside of the control of us;\
(iii) war, terrorism, sabotage, blockade, revolution, riot, insurrection, civil commotion, epidemic, pandemic;

### **14 NOTICES**

(a) A notice or other communication to a party under these Terms must be:\
(i) in writing and in English; and\
(ii) delivered via email to the other party, to the email address specified in the Order, or if no email address is specified in the Order, then the email address most regularly used by the parties to correspond regarding the subject matter of this agreement as at the date of this agreement (Email Address). The parties may update their Email Address by notice to the other party.\
(b) Unless the party sending the notice knows or reasonably ought to suspect that an email was not delivered to the other party’s Email Address, notice will be taken to be given:\
(i) 24 hours after the email was sent, unless that falls on a Saturday, Sunday or a public holiday in the state or territory whose laws govern this agreement, in which case the notice will be taken to be given on the next occurring business day in that state or territory; or\
(ii) when replied to by the other party, whichever is earlier.

### **15 GENERAL**

#### 15.1 GOVERNING LAW AND JURISDICTION

This agreement is governed by the law applying in New South Wales in Australia. Each party irrevocably submits to the exclusive jurisdiction of the courts of New South Wales and courts of appeal from them in respect of any proceedings arising out of or in connection with this agreement. Each party irrevocably waives any objection to the venue of any legal process on the basis that the process has been brought in an inconvenient forum.

#### 15.2 WAIVER

No party to this agreement may rely on the words or conduct of any other party as a waiver of any right unless the waiver is in writing and signed by the party granting the waiver.

#### 15.3 SEVERANCE

Any term of this agreement which is wholly or partially void or unenforceable is severed to the extent that it is void or unenforceable. The validity and enforceability of the remainder of this agreement is not limited or otherwise affected.

#### 15.4 JOINT AND SEVERAL LIABILITY

An obligation or a liability assumed by, or a right conferred on, two or more persons binds or benefits them jointly and severally.

#### 15.5 ASSIGNMENT

A party cannot assign, novate or otherwise transfer any of its rights or obligations under this agreement without the prior written consent of the other party.

#### 15.6 ENTIRE AGREEMENT

This agreement embodies the entire agreement between the parties and supersedes any prior negotiation, conduct, arrangement, understanding or agreement, express or implied, in relation to the subject matter of this agreement.

#### 15.7 INTERPRETATION

(a) (singular and plural) words in the singular includes the plural (and vice versa);\
(b) (currency) a reference to $; or “dollar” is to US currency;\
(c) (gender) words indicating a gender includes the corresponding words of any other gender;\
(d) (defined terms) if a word or phrase is given a defined meaning, any other part of speech or grammatical form of that word or phrase has a corresponding meaning;\
(e) (person) a reference to “person” or “you” includes an individual, the estate of an individual, a corporation, an authority, an association, consortium or joint venture (whether incorporated or unincorporated), a partnership, a trust and any other entity;\
(f) (party) a reference to a party includes that party’s executors, administrators, successors and permitted assigns, including persons taking by way of novation and, in the case of a trustee, includes any substituted or additional trustee;\
(g) (this agreement) a reference to a party, clause, paragraph, schedule, exhibit, attachment or annexure is a reference to a party, clause, paragraph, schedule, exhibit, attachment or annexure to or of this agreement, and a reference to this agreement includes all schedules, exhibits, attachments and annexures to it;\
(h) (document) a reference to a document (including this agreement) is to that document as varied, novated, ratified or replaced from time to time;\
(i) (headings) headings and words in bold type are for convenience only and do not affect interpretation;\
(j) (includes) the word “includes” and similar words in any form is not a word of limitation; and\
(k) (adverse interpretation) no provision of this agreement will be interpreted adversely to a party because that party was responsible for the preparation of this agreement or that provision.

### **DEFINITIONS**

#### **Client Data**

means any data, document or other Material supplied by you to us under or in connection with these Terms or a Subscription, including any Intellectual Property Rights attaching to those materials.

#### **Confidential Information**

means information of or provided by a party that is by its nature is confidential information, is designated by that party as confidential, or that the other party knows or ought to know is confidential, but does not include information, which is or becomes, without a breach of confidentiality, public knowledge.

#### **Documentation**

means all manuals, help files and other documents supplied by us to you relating to the Software, whether in electronic or hardcopy form.

#### **Fees**

means the Subscription Fees, fees for Additional Services and any other fees the Client must pay in accordance with an Order.

#### **Hosted Services**

has the meaning given in clause 3.1.

#### **Intellectual Property Rights**

means any and all present and future intellectual and industrial property rights throughout the world (whether registered or unregistered), including copyright, trade marks, designs, patents, moral rights, semiconductor and circuit layout rights, trade, business, company and domain names, and other proprietary rights, trade secrets, know-how, technical data, confidential information and the right to have information kept confidential, or any rights to registration of such rights (including renewal), whether created before or after the date of this agreement.

#### **Material**

means tangible and intangible information, documents, reports, software (including source and object code), inventions, data and other materials in any media whatsoever.

#### **Number of Solution Uses**

means the number of websites, or any other platform or use, that you may use the Solution in respect to, in accordance with your Subscription Tier.

#### **Personnel**

means, in respect of a party, its officers, employees, contractors (including subcontractors) and agents.

#### **Services**

means the Hosted Services, the Support Services, the Additional Services, and any other services we agree in writing to provide.

#### **Software**

means the software as described on our Website, and which is licensed to you in accordance with clauses 1.4 and 9.2.

#### **Software Content**

has the meaning set out in clause 9.2(a).

#### **Solution**

includes the Software and the Services (and any other services to be provided to you under these Terms).

#### **Subscription**

has meaning given in the first paragraph of these Terms, and includes the limitations set out on the Website.

#### **Subscription Fees**

has the meaning set out in clause 4 of these Terms.

#### **Subscription Period**

means the period of your Subscription to the Solution as agreed on the Website.

#### **Subscription Tier**

has the meaning given in the first paragraph of these Terms.

#### **Support Services**

has the meaning given in clause 3.2.

#### **User**

means end users of the Solution and any other third party granted access to the Software by you.

#### **User Data**

means files, data, materials or any other information, which is uploaded to the Software by you or any other User, including any Intellectual Property Rights attaching to those files, data, materials or any other information.

#### **Website**

means the website at the URL set out in the first paragraph of these Terms, and any other website operated by us in connection with the Solution.


# Error Code


# Introduction

WorkfxAI is an efficient and intelligent platform that empowers users to easily build intelligent agents with real industry expertise. By transforming your professional knowledge into structured domain knowledge, WorkfxAI enables you to create agents that can understand, reason, and act with the depth of an industry expert. Whether you are an enterprise, an industry specialist, or a team looking to enhance business automation and intelligence, WorkfxAI helps you unlock the full potential of your knowledge through smart agent creation.

WorkfxAI is suitable for:

* Enterprises and individuals who need to digitize and structure their professional knowledge
* Teams aiming to automate business processes with intelligent agents
* Organizations requiring multi-agent collaboration for complex tasks
* Experts focused on knowledge accumulation and reuse within their industry

## Quick Start Tutorial

Get started quickly with WorkfxAI by watching these comprehensive tutorial videos:

### Create an Q\&A AI Agent

{% embed url="<https://www.youtube.com/watch?v=9DbeGilP0oQ>" %}
Complete introduction to WorkfxAI platform and how to get started
{% endembed %}

### Smart Flow-Based Agent Tutorial

{% embed url="<https://www.youtube.com/watch?v=HmMIAO0LvlY>" %}
Smart Flow-Based AI Agent
{% endembed %}

## Key Platform Components

After getting familiar with the basics through our tutorial videos, you'll want to explore the core components that make WorkfxAI powerful. The platform is built around two main pillars: the **Knowledge Center** for organizing and structuring your domain expertise, and the **Workforce Factory** for creating and managing intelligent agents.

The **Knowledge Center** helps you transform unstructured information into actionable knowledge that your agents can leverage, while the **Workforce Factory** provides the tools and frameworks needed to build sophisticated agents that can work individually or collaborate in multi-agent scenarios.

## Explore WorkfxAI Features

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th data-type="content-ref"></th><th data-type="content-ref"></th><th data-type="content-ref"></th></tr></thead><tbody><tr><td>Knowledge Center</td><td><a href="/pages/ltMefy9UlGChIw1y5QoR">/pages/ltMefy9UlGChIw1y5QoR</a></td><td><a href="/pages/pSLD6GxnVyomuJkBP2iA">/pages/pSLD6GxnVyomuJkBP2iA</a></td><td></td></tr><tr><td>Workforce Factory</td><td><a href="/pages/zM19vKqmmqmjxxJ8Jra6">/pages/zM19vKqmmqmjxxJ8Jra6</a></td><td><a href="/pages/BgySw9MJqEoNFOxER3YB">/pages/BgySw9MJqEoNFOxER3YB</a></td><td><a href="/pages/mv3uvoaWngcKIfkwPsNs">/pages/mv3uvoaWngcKIfkwPsNs</a></td></tr></tbody></table>


# Featured Agents User Manual

<figure><img src="/files/tJh9SVt4SHkESAf3lacf" alt=""><figcaption></figcaption></figure>


# GEO & SEO Evaluate Agent

Step by step guidance on how to interact our agents

1. **Configure your Chat Settings.**

   1. &#x20; Chat Settings define top-level instruction and guardrails for your agent. Please. Provide following details to ground the agent in your brand's information:
   2. **Brand Name**
   3. **Website URL** (starts with https\://)
   4. **Relevant information** (any additional context to feed the agent)

   Click **Confirm** to save them so you don't need to re-enter for ongoing dialogues under the same Task.

<figure><img src="/files/VsLgQJupSsuIRBoCUx28" alt=""><figcaption></figcaption></figure>

2. **Start a New Task.**

Each task in the left panel (can be collapsed) represents a separate dialogue with the agent, with independent information and chat settings. If you prefer the agent to memorize your brand and URL, we'd recommend you stick with the same task.

<figure><img src="/files/ZStCpEjfMvx77TwdkffC" alt=""><figcaption></figcaption></figure>

3. **Create Top Level Evaluation Report and Insights.**

Conduct a speedy evaluation on your website with an exportable report.

{% embed url="<https://youtu.be/3ZY5qxC37Mc>" %}

<br>


# GEO & SEO Management Agent

Step by step guidance on how to interact our agents

1. **Configure your Chat Settings.**

   1. &#x20; Chat Settings define top-level instruction and guardrails for your agent. Please. Provide following details to ground the agent in your brand's information:
   2. **Brand Name**
   3. **Website URL** (starts with https\://)
   4. **Relevant information** (any additional context to feed the agent)

   Click **Confirm** to save them so you don't need to re-enter for ongoing dialogues under the same Task.

<figure><img src="/files/e3Vu4a4XSv2YWYZrtorZ" alt=""><figcaption></figcaption></figure>

2. **Start a New Task.**

Each task in the left panel (can be collapsed) represents a separate dialogue with the agent, with independent information and chat settings. If you prefer the agent to memorize your brand and URL, we'd recommend you stick with the same task.

<figure><img src="/files/PsoMwH4YvYWPCg94JYUZ" alt=""><figcaption></figcaption></figure>

3. **Create Site Evaluation Report and Insights.**

Conduct a speedy evaluation on your website with an exportable report, as well as suggested next steps for you to choose.

{% embed url="<https://youtu.be/_zNqbPrUkOc>" %}

\
Suggested Next Steps:

<figure><img src="/files/Xud697l62TiSwTUHw3oY" alt=""><figcaption></figcaption></figure>

4. **Produce a 5-Week Step by Step Action Plan:**

<figure><img src="/files/iv9Rx76t1tXxJngWyMvQ" alt=""><figcaption></figcaption></figure>

{% embed url="<https://youtu.be/ur76R-6QSTY>" %}

5. **Follow the plan and start with Week 1 Suggested Action:** Foundational Analysis & Data Collection (see below) - Run GEO Data Collection & Analysis or SEO Data Collection & Analysis:'

<figure><img src="/files/2G5GXPF6tNMgdd80ZAr5" alt=""><figcaption></figcaption></figure>

{% embed url="<https://youtu.be/7GJx3S7ay9o>" %}

6. Move to GEO & SEO Keywords-Topics Strategist Agent for following next steps.


# GEO & SEO Keywords-Topics Strategist Agent

Step by step guidance on how to interact our agents

1. Click Chat Settings to make sure it has captured the right information of your brand, then hit Confirm to collapse the setting window.

![](https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=YWFiY2YwMDJhZTIwNzMzZjQyYjYwNjA0MGU0ODRlNTNfclROUUhiQ204MDRmS051S1RUS0gwOFRZZWsxOFhEdmxfVG9rZW46TUQzdmJ4cUdYb3hZZWp4amJzS2M3cTBxblJkXzE3NjU2MjA0MTY6MTc2NTYyNDAxNl9WNA)![](https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=NzRmMGMwYTIzMDQwNWJiMjA5MTQ3ZDdlYzBjNGRlMThfb3FuWWRJZk1LT25DejZyc0xqNXBzTU01UUx1TWx3VkNfVG9rZW46TVU0RWJybHNnb2U4OWR4V2hCbGNjZ3ZVbnZiXzE3NjU2MjA0MTY6MTc2NTYyNDAxNl9WNA)<br>

2. Click "Start keywords selection" to auto-populate a prompt; or enter your own instruction on what you'd like the agent to create, results will be produced in a few seconds. Keyword agent will produce a comprehensive report including: \
   \- Executive Summary; \
   \- Category 1: Own Keywords (Blue Ocean Opportunities) \
   \- Category 2: Compete Keywords (Optimization Opportunities) \
   \- Category 3: Experimental Keywords (High-Volume Testing) \
   \- Budget Recommendations with monthly budget allocation suggestion \
   \- Priority Action Items for your next steps such as: create landinge page / implement analytics / develop a content creation plan.\\

Take note or copy these keywords and move to Content Generator Agent to finish creating content that is optimised towards GEO & SEO.

{% embed url="<https://youtu.be/c1knmtKq_cw>" %}

<br>

1. Click Chat Settings to make sure it has captured the right information of your brand, then hit Confirm to collapse the setting window.

![](https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=MjUwZDY1MWU4YzMwMGUxMzVmZDE0NGY4ODk3MTQ3Y2VfSHJiZk5aSXRiVUtXRUsxQWhNbXZjRjNoeEdrb3pOMlNfVG9rZW46VUpTVGJoZmt4b0RGbGN4SEtWQmNtaUFrbjZiXzE3NjU2MTkzNTE6MTc2NTYyMjk1MV9WNA)![](https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=YTZhZDUxNTcwOTQ5NWEyNDY5NDVlYmRjMjkwZDdiNDBfRXBLTWtRU3VuS3ROVjh0SnpjdHFIV0pIQ21KUVFiYmJfVG9rZW46VUU0OGJrMUdKb3ZOY1l4eDdkcWNwVHB5blVoXzE3NjU2MTkzNTE6MTc2NTYyMjk1MV9WNA)<br>

2. Set up your external content distribution channels accounts next to Chat Settings. This will allow you to auto publish any content produced by the agent.

{% embed url="<https://youtu.be/GBjFw6akLlk>" %}

3. Based on result from GEO & SEO Keywords-Topics Startegist Agent, enter your instruction on what type of content you'd like the agent to create, where the content will be distributed. Once content is reviewed and confirmed, instruct the agent to publish it to your linked account(s).&#x20;

{% embed url="<https://youtu.be/QTa4emnhvSA>" %}


# Content Generator Agent

Step by step guidance on how to interact our agents

1. Click Chat Settings to make sure it has captured the right information of your brand, then hit Confirm to collapse the setting window.

![](https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=MzExNTAwYWNjOThkNWQ0NjRiMDcyY2Q4MTkwZDUzZjNfa09PWE5ZOWxwOXE4Z1NaYkp0T3FacnhVTEdGOXB2WmVfVG9rZW46VUpTVGJoZmt4b0RGbGN4SEtWQmNtaUFrbjZiXzE3NjU2MjAzMDA6MTc2NTYyMzkwMF9WNA)![](https://vxqhv8tzaua.feishu.cn/space/api/box/stream/download/asynccode/?code=NDU4ZTAyZTgyZWYwMmYxM2I0NjgyYTE2NWYxN2Y4OTVfNjRvdjNvVVNnSHFnR0NXaWxITEV2QTB6dmVPMWR4eWZfVG9rZW46VUU0OGJrMUdKb3ZOY1l4eDdkcWNwVHB5blVoXzE3NjU2MjAzMDA6MTc2NTYyMzkwMF9WNA)<br>

2. Set up your external content distribution channels accounts next to Chat Settings. This will allow you to auto publish any content produced by the agent.&#x20;

{% embed url="<https://youtu.be/GBjFw6akLlk>" %}

3. Based on result from GEO & SEO Keywords-Topics Startegist Agent, enter your instruction on what type of content you'd like the agent to create, where the content will be distributed. Once content is reviewed and confirmed, instruct the agent to publish it to your linked account(s).&#x20;

{% embed url="<https://youtu.be/QTa4emnhvSA>" %}


# TikTok Shop Influencer Scout Agent

Step by step guidance on how to interact our agents

Our TikTok Shop Influencer Scout Agent has extensive and exclusive database on TikTok Shop Influencers who have demonstrated a successful track record on bringing revenue for their own TikTok shop or brands.Please note influencers who do not own a TikTok shop in **US, UK or South East Asia** might not be in our database.Through this agent, you can:

* Look up creators that you'd like to understand about their past sales performance
* Find out how creators work with brands - minimum production fee involved or commissions only
* Creators' video GPM (Gross Merchandise Value Per Mille: total sales revenue generated for every **1,000 views** their video receives)
* Draft and auto-send outreach email tailored to each creator

{% embed url="<https://youtu.be/52gIodcslAs>" %}


# 标杆 AI 智能体用户指南


# SEO-GEO综合智能体(最新）

最新上线的一站式SEO-GEO综合智能体: https\://platform.workfx.ai/seo-geo-agent

### 一、这个产品适合谁？

Workfx AI 适合以下用户：

* 没有 SEO / 技术背景的企业或个人
* 不想再依赖外包团队做 SEO / 内容
* 希望同时做好 **搜索（SEO）和 AI 搜索（GEO）**
* 想把复杂的增长流程，简化成可执行步骤的人

你 **不需要**技术背景、开发团队、专门的 SEO 人员

***

### 二、整体使用流程概览

1. 贴入网站 → AI自动诊断（SEO & GEO 基础）
2. 全面检测出技术问题 → 按优先级逐步优化
3. 生成内容 → 一键发布到你的网站

***

### 三、详细操作步骤

#### Step 1：贴入你的网站

<figure><img src="/files/IFZJkJCnPWqKmnuIcqza" alt=""><figcaption></figcaption></figure>

进入 Workfx AI 后，只需：将你的网站 URL 粘贴到系统中无需任何配置，一键点击Agent 就会自动开始分析。

***

#### Step 2：基础评估（SEO & GEO 整体水平）

<figure><img src="/files/LOELkmqSVNxiwVvH6k3r" alt=""><figcaption></figcaption></figure>

Agent 会首先对你的网站进行一次**标准化评估**，帮助你快速了解当前所处位置，包括：

* 网站**GEO 评分**（你在 AI 搜索中的基础表现）
* 与行业竞品的对比差距（以对比表格形式展示）

这一阶段的目标是：**让你清楚知道自己在行业中的相对水平，帮助你建立整体的认知。**

***

#### Step 3：深入评测（可执行的技术诊断）

<figure><img src="/files/pMZaK8ZXuydTGeXkznwn" alt=""><figcaption></figcaption></figure>

在完成整体评估后，你可以进入**深入评测环节，**&#x41;gent 会系统性识别：

* 当前网站存在的技术性问题
* 影响 SEO、GEO 和用户体验的关键环节
* 仍有优化空间但尚未被充分利用的部分

<figure><img src="/files/kPGVSJadqYnLs0Bkz5n2" alt=""><figcaption></figcaption></figure>

针对每一个问题，Agent 会提供：

* **明确的修复优先级**，方便你逐项决策和执行
* 从非技术角度 & 技术角度出发的清晰的问题说明，方便不同使用人群理解问题。
* 点击【立即修复】即可获取详细的修复方案，

你不需要理解复杂术语， 只需要判断：**先改哪一项，后改哪一项。**

***

#### Step 4：进入内容策略 Agent（SEO + GEO 协同）

<figure><img src="/files/DItSLO8bRuipghZ3a3aL" alt=""><figcaption></figcaption></figure>

完成技术评估后，进入内容策略 Agent：

* 系统会基于你的行业生成 **今日推荐话题**
* 选题基于讨论度、搜索趋势、性价比、AI 理解逻辑筛选等因素，根据品牌的相关行业竞争分析，找到符合品牌的搜索引擎长尾keywords和AI引擎（ChatGPT/Gemini等）的query
* 如不满意，可 **一键刷新**
* 也可直接输入你自己的话题

***

#### Step 5：选中话题 一键生成专业内容

<figure><img src="/files/2qLPxZQXSsuOY0QAAwep" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/PwoTfwxB7cZgRfeN0EBl" alt=""><figcaption></figcaption></figure>

选中话题后：

* 选择发布平台（如 WordPress / Shopify）
* 选择内容语言
* Agent 会自动生成一篇：
  * 结构完整
  * 包含真实引用和数据
  * 有助于建立 AI 信任度的专业内容

***

#### Step 6：一键发布到你的网站

文章生成后，你可以在 **AI 对话框中直接预览内容**，并自由选择下一步操作：

<figure><img src="/files/4jdT0c5UYFPIjz4DbdQZ" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/77dp1ISMYJRnCdINef2s" alt=""><figcaption></figcaption></figure>

* 复制或下载文章，用于内部或其他渠道
* 或 **连接你的网站后一键发布**

<figure><img src="/files/GzBjE3aSk3C8GeypSB7b" alt=""><figcaption></figcaption></figure>

（支持：Shopify、WordPress、LinkedIn、Reddit）在发布前，系统会为文章提供一份 **内容质量评分与简要解析**，帮助你快速了解这篇内容在 **可见性、结构、专业性和技术规范** 等方面的优化表现。\
确认后即可一键发布， **无需复制、排版或手动检查格式，从生成到上线，全流程自动完成。**

***

### FAQ｜常见问题

#### Q1：我完全不懂 SEO 或技术，也能用吗？

可以。Workfx AI 的设计前提，就是**假设用户没有任何 SEO 或技术背景**。所有诊断结果和解决方案，都会以非技术语言呈现。Agent 会直接告诉你：

* 现在网站主要问题是什么
* 下一步该先做哪一件事
* 为什么这一步最重要

你只需要按步骤做判断， 不需要理解复杂概念，也不需要自己想解决方案。

***

#### Q2：用了 Workfx AI，我还需要再找 SEO 或内容团队吗？

对大多数中小团队来说，不是必须。Workfx AI 把原本需要不同角色完成的事情，整合成一个清晰、可执行的流程，包括评估、诊断、内容和发布。你不需要再分别对接 SEO、技术和内容团队，也不需要反复沟通和管理外包进度。

***

#### Q3：生成的内容能直接用吗？会不会很「AI 味」？

这是我们非常在意的一点内容并不是随便生成的：

* 选题经过筛选，而不是随机拼接
* 内容中包含真实引用和数据
* 结构是为搜索和 AI 理解设计的，而不是为了“看起来像文章”

目标不是“多写内容”，而是**帮助你在 AI 搜索环境中建立专业性和可信度**。

***

#### Q4：我一定要用系统推荐的话题吗？

不需要。你可以直接输入自己的话题， 由 Agent 帮你完成内容生成。系统推荐的选题只是为了帮你节省决策时间， **而不是限制你怎么做内容。**

***

#### Q5：内容一定要一键发布吗？我能自己控制吗？

完全由你决定。你可以：

* 只生成内容，不发布
* 下载或复制内容，自行发布到其他渠道
* 或在确认后，再选择一键发布到已连接的网站

Workfx AI 不会强制任何发布行为。

***

#### Q6：SEO + GEO 听起来很复杂，我需要额外学习吗？

不需要。对用户来说，你不需要分别“学 SEO”或“学 GEO”。 这些复杂度已经被 Agent 吸收掉了。Workfx AI 会在同一个流程中完成评估、判断和执行， 你只需要按清晰的步骤做选择。对你来说，事情并没有变复杂， 只是交给了一个更懂搜索和 AI 的 Agent 来处理。


# GEO & SEO 快速诊断智能体

Step by step guidance on how to interact our agents

1. #### **输入您的聊天设置（Chat Settings）**

Chat Settings 用于为智能助手设定顶层指令与工作边界。请提供以下信息，以便它准确理解并基于您品牌进行输出：

* 品牌名称
* 网站 URL（必须以 https\:// 开头）
* 相关信息（任何可帮助智能助手理解您业务的背景信息）

点击 **Confirm（确认）** 保存设置，这样在同一个 Task 下的后续对话中无需重复输入。

<figure><img src="/files/otNMopsxw5TGttiNwi7G" alt=""><figcaption></figcaption></figure>

2. #### **开启一个新的 Task**

左侧栏中的每一个 Task（可收起）都代表一个独立的对话空间，彼此数据互不干扰；每个 Task 会保存自己的 Chat Settings 及输入内容。若您希望智能助手记住您的品牌名称及 URL，建议在同一个 Task 内持续使用。

<figure><img src="/files/HANuWA3PAEqBlC1vMulE" alt=""><figcaption></figcaption></figure>

3. #### **创建网站评估报告与洞察（Site Evaluation Report & Insights）**

快速对您的网站进行诊断，生成可导出的报告。

{% embed url="<https://youtu.be/3ZY5qxC37Mc>" %}




---

[Next Page](/llms-full.txt/1)

