mirror of
https://github.com/forcedotcom/afv-library.git
synced 2026-07-30 03:09:50 +08:00
16 KiB
16 KiB
Agentforce Flow Diagram Template
Flowchart template for visualizing Agentforce agent architecture and conversation flows.
When to Use
- Documenting Agentforce agent structure
- Planning agent topics and actions
- Visualizing conversation flows
- Architecture reviews
Mermaid Template - Agent Structure
%%{init: {"flowchart": {"nodeSpacing": 80, "rankSpacing": 70}} }%%
flowchart TB
subgraph agent["🤖 SERVICE AGENT"]
direction TB
DESC[/"Agent Description:<br/>AI-powered customer service<br/>assistant for order management"/]
subgraph topics["📋 TOPICS"]
direction LR
T1[Order Status]
T2[Return Request]
T3[Product Info]
T4[Escalation]
end
subgraph instructions["📝 INSTRUCTIONS"]
I1[Greet professionally]
I2[Verify customer identity]
I3[Use knowledge base first]
I4[Escalate if frustrated]
end
end
subgraph topic_order["📦 TOPIC: ORDER STATUS"]
direction TB
TO_DESC[/"Help customers check<br/>order and shipping status"/]
TO_SCOPE[Scope: Order tracking,<br/>delivery estimates]
subgraph to_actions["ACTIONS"]
TO_A1[Get Order Details<br/>⚡ Apex]
TO_A2[Check Shipping<br/>🔄 Flow]
end
end
subgraph topic_return["🔄 TOPIC: RETURN REQUEST"]
direction TB
TR_DESC[/"Process return and<br/>refund requests"/]
TR_SCOPE[Scope: Returns, refunds,<br/>exchanges]
subgraph tr_actions["ACTIONS"]
TR_A1[Create Case<br/>🔄 Flow]
TR_A2[Generate Label<br/>⚡ Apex]
TR_A3[Process Refund<br/>⚡ Apex]
end
end
%% Connections
T1 --> topic_order
T2 --> topic_return
TO_A1 --> ORDER_SVC[Order Service]
TO_A2 --> SHIP_API[Shipping API]
TR_A1 --> CASE_OBJ[(Case Object)]
TR_A2 --> SHIP_API
TR_A3 --> PAY_API[Payment API]
%% Node Styling - Topics (violet-200)
style T1 fill:#ddd6fe,stroke:#6d28d9,color:#1f2937
style T2 fill:#ddd6fe,stroke:#6d28d9,color:#1f2937
style T3 fill:#ddd6fe,stroke:#6d28d9,color:#1f2937
style T4 fill:#ddd6fe,stroke:#6d28d9,color:#1f2937
%% Node Styling - Actions (emerald-200)
style TO_A1 fill:#a7f3d0,stroke:#047857,color:#1f2937
style TO_A2 fill:#a7f3d0,stroke:#047857,color:#1f2937
style TR_A1 fill:#a7f3d0,stroke:#047857,color:#1f2937
style TR_A2 fill:#a7f3d0,stroke:#047857,color:#1f2937
style TR_A3 fill:#a7f3d0,stroke:#047857,color:#1f2937
%% Node Styling - External (orange-200)
style ORDER_SVC fill:#fed7aa,stroke:#c2410c,color:#1f2937
style SHIP_API fill:#fed7aa,stroke:#c2410c,color:#1f2937
style PAY_API fill:#fed7aa,stroke:#c2410c,color:#1f2937
style CASE_OBJ fill:#fde68a,stroke:#b45309,color:#1f2937
%% Node Styling - Descriptions (slate-200)
style DESC fill:#e2e8f0,stroke:#334155,color:#1f2937
style TO_DESC fill:#e2e8f0,stroke:#334155,color:#1f2937
style TO_SCOPE fill:#e2e8f0,stroke:#334155,color:#1f2937
style TR_DESC fill:#e2e8f0,stroke:#334155,color:#1f2937
style TR_SCOPE fill:#e2e8f0,stroke:#334155,color:#1f2937
style I1 fill:#e2e8f0,stroke:#334155,color:#1f2937
style I2 fill:#e2e8f0,stroke:#334155,color:#1f2937
style I3 fill:#e2e8f0,stroke:#334155,color:#1f2937
style I4 fill:#e2e8f0,stroke:#334155,color:#1f2937
%% Subgraph Styling - 50-level fills with dashed borders
style agent fill:#fdf2f8,stroke:#be185d,stroke-dasharray:5
style topics fill:#f5f3ff,stroke:#6d28d9,stroke-dasharray:5
style instructions fill:#f8fafc,stroke:#334155,stroke-dasharray:5
style topic_order fill:#f5f3ff,stroke:#6d28d9,stroke-dasharray:5
style to_actions fill:#ecfdf5,stroke:#047857,stroke-dasharray:5
style topic_return fill:#f5f3ff,stroke:#6d28d9,stroke-dasharray:5
style tr_actions fill:#ecfdf5,stroke:#047857,stroke-dasharray:5
Mermaid Template - Conversation Flow
%%{init: {"flowchart": {"nodeSpacing": 80, "rankSpacing": 70}} }%%
flowchart TD
START([🟢 Conversation Start])
START --> GREET[Greet Customer]
GREET --> CLASSIFY{Classify Intent}
CLASSIFY -->|Order Related| ORDER_TOPIC
CLASSIFY -->|Return Related| RETURN_TOPIC
CLASSIFY -->|General Question| KB_SEARCH
CLASSIFY -->|Unknown| CLARIFY
subgraph ORDER_TOPIC["📦 ORDER STATUS TOPIC"]
ORD_1[Ask for Order Number]
ORD_2[Retrieve Order Details<br/>⚡ GetOrderDetails Action]
ORD_3{Order Found?}
ORD_4[Display Status]
ORD_5[Offer Additional Help]
ORD_1 --> ORD_2 --> ORD_3
ORD_3 -->|Yes| ORD_4 --> ORD_5
ORD_3 -->|No| ORD_1
end
subgraph RETURN_TOPIC["🔄 RETURN REQUEST TOPIC"]
RET_1[Verify Order Eligible]
RET_2{Eligible for Return?}
RET_3[Create Return Case<br/>🔄 CreateReturnCase Action]
RET_4[Generate Return Label<br/>⚡ GenerateLabel Action]
RET_5[Provide Instructions]
RET_6[Explain Policy]
RET_1 --> RET_2
RET_2 -->|Yes| RET_3 --> RET_4 --> RET_5
RET_2 -->|No| RET_6
end
KB_SEARCH[Search Knowledge Base<br/>📚 Knowledge Action]
KB_SEARCH --> KB_RESULT{Found Answer?}
KB_RESULT -->|Yes| PROVIDE_ANSWER[Provide Answer]
KB_RESULT -->|No| ESCALATE
CLARIFY[Ask Clarifying Question]
CLARIFY --> CLASSIFY
ESCALATE[Escalate to Human<br/>👤 Transfer Action]
ORD_5 --> SATISFIED{Customer Satisfied?}
RET_5 --> SATISFIED
PROVIDE_ANSWER --> SATISFIED
SATISFIED -->|Yes| END_SUCCESS([🟢 End - Resolved])
SATISFIED -->|No| ESCALATE
ESCALATE --> END_TRANSFER([🟡 End - Transferred])
%% Node Styling - Start/End (emerald-200)
style START fill:#a7f3d0,stroke:#047857,color:#1f2937
style END_SUCCESS fill:#a7f3d0,stroke:#047857,color:#1f2937
style END_TRANSFER fill:#fde68a,stroke:#b45309,color:#1f2937
%% Node Styling - Decisions (violet-200)
style CLASSIFY fill:#ddd6fe,stroke:#6d28d9,color:#1f2937
style ORD_3 fill:#ddd6fe,stroke:#6d28d9,color:#1f2937
style RET_2 fill:#ddd6fe,stroke:#6d28d9,color:#1f2937
style KB_RESULT fill:#ddd6fe,stroke:#6d28d9,color:#1f2937
style SATISFIED fill:#ddd6fe,stroke:#6d28d9,color:#1f2937
%% Node Styling - Actions (cyan-200)
style GREET fill:#a5f3fc,stroke:#0e7490,color:#1f2937
style ORD_1 fill:#a5f3fc,stroke:#0e7490,color:#1f2937
style ORD_2 fill:#a5f3fc,stroke:#0e7490,color:#1f2937
style ORD_4 fill:#a5f3fc,stroke:#0e7490,color:#1f2937
style ORD_5 fill:#a5f3fc,stroke:#0e7490,color:#1f2937
style RET_1 fill:#a5f3fc,stroke:#0e7490,color:#1f2937
style RET_3 fill:#a5f3fc,stroke:#0e7490,color:#1f2937
style RET_4 fill:#a5f3fc,stroke:#0e7490,color:#1f2937
style RET_5 fill:#a5f3fc,stroke:#0e7490,color:#1f2937
style RET_6 fill:#a5f3fc,stroke:#0e7490,color:#1f2937
style KB_SEARCH fill:#a5f3fc,stroke:#0e7490,color:#1f2937
style PROVIDE_ANSWER fill:#a5f3fc,stroke:#0e7490,color:#1f2937
style CLARIFY fill:#a5f3fc,stroke:#0e7490,color:#1f2937
style ESCALATE fill:#fed7aa,stroke:#c2410c,color:#1f2937
%% Subgraph Styling - 50-level fills with dashed borders
style ORDER_TOPIC fill:#f5f3ff,stroke:#6d28d9,stroke-dasharray:5
style RETURN_TOPIC fill:#f5f3ff,stroke:#6d28d9,stroke-dasharray:5
ASCII Fallback Template
┌─────────────────────────────────────────────────────────────────────────────┐
│ 🤖 SERVICE AGENT STRUCTURE │
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│ AGENT: Customer Service Bot │
│ ───────────────────────────── │
│ Description: AI-powered assistant for order and return inquiries │
│ │
│ Instructions: │
│ • Greet customers professionally │
│ • Verify identity before sharing order details │
│ • Search knowledge base before escalating │
│ • Escalate if customer expresses frustration │
└─────────────────────────────────────────────────────────────────────────────┘
│
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ 📋 TOPICS │
│ ┌───────────────────┐ ┌───────────────────┐ ┌───────────────────┐ │
│ │ 📦 Order Status │ │ 🔄 Return Request │ │ ❓ General Help │ │
│ │ │ │ │ │ │ │
│ │ Scope: │ │ Scope: │ │ Scope: │ │
│ │ - Track orders │ │ - Process return │ │ - FAQ answers │ │
│ │ - Delivery ETA │ │ - Generate label │ │ - Knowledge base │ │
│ │ - Order history │ │ - Refund status │ │ - Escalation │ │
│ └─────────┬─────────┘ └─────────┬─────────┘ └─────────┬─────────┘ │
└────────────│──────────────────────│──────────────────────│──────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ ⚡ ACTIONS │
│ ┌───────────────────┐ ┌───────────────────┐ ┌───────────────────┐ │
│ │ GetOrderDetails │ │ CreateReturnCase │ │ SearchKnowledge │ │
│ │ [Apex Invocable] │ │ [Flow] │ │ [Standard Action] │ │
│ ├───────────────────┤ ├───────────────────┤ ├───────────────────┤ │
│ │ Input: │ │ Input: │ │ Input: │ │
│ │ - orderNumber │ │ - orderId │ │ - query │ │
│ │ - customerId │ │ - reason │ │ - language │ │
│ │ │ │ - quantity │ │ │ │
│ │ Output: │ │ Output: │ │ Output: │ │
│ │ - status │ │ - caseId │ │ - articles[] │ │
│ │ - items[] │ │ - returnLabel │ │ - confidence │ │
│ │ - trackingUrl │ │ - instructions │ │ │ │
│ └───────────────────┘ └───────────────────┘ └───────────────────┘ │
└─────────────────────────────────────────────────────────────────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ 🔗 INTEGRATIONS │
│ ┌───────────────────┐ ┌───────────────────┐ ┌───────────────────┐ │
│ │ Order Service │ │ Shipping API │ │ Knowledge Base │ │
│ │ (Salesforce) │ │ (FedEx/UPS) │ │ (Salesforce) │ │
│ └───────────────────┘ └───────────────────┘ └───────────────────┘ │
└─────────────────────────────────────────────────────────────────────────────┘
Agent Components
| Component | Description | Example |
|---|---|---|
| Agent | The AI assistant container | Service Agent, SDR Agent |
| Topic | Conversation category | Order Status, Returns |
| Action | Executable capability | Apex method, Flow |
| Instruction | Behavioral guideline | "Always verify identity" |
| Scope | Topic boundaries | What's in/out of scope |
Action Types
| Type | Icon | Use Case |
|---|---|---|
| Apex Invocable | ⚡ | Complex logic, callouts |
| Flow | 🔄 | Record creation, updates |
| Standard | 📚 | Knowledge search, case creation |
| Prompt Template | 💬 | Dynamic response generation |
Conversation Flow Patterns
1. Linear Flow
Start → Topic → Action → Response → End
2. Branching Flow
Start → Classify → [Topic A | Topic B | Escalate]
3. Loop Back
Start → Topic → Action → Validate → [Success | Retry]
Best Practices
- Clear topic boundaries - Don't overlap scope
- Minimal actions per topic - 3-5 max
- Always have escalation path - Human handoff
- Use knowledge base first - Before custom actions
- Verify before acting - Confirm understanding
Customization Points
- Replace example topics with actual use cases
- Add specific action inputs/outputs
- Include actual integration endpoints
- Show conversation sample flows