394 lines
10 KiB
Markdown
394 lines
10 KiB
Markdown
|
|
# Office Automation Template (office.gbai)
|
||
|
|
|
||
|
|
A General Bots template for role-based office productivity with department-specific knowledge bases and context-aware assistance.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Overview
|
||
|
|
|
||
|
|
The Office template provides a multi-role office assistant that adapts its behavior, knowledge, and suggestions based on the user's role. Whether you're a manager, developer, customer support agent, HR professional, or finance team member, the bot tailors its responses and available resources accordingly.
|
||
|
|
|
||
|
|
## Features
|
||
|
|
|
||
|
|
- **Role-Based Access** - Different capabilities per user role
|
||
|
|
- **Dynamic Knowledge Bases** - Automatically loads relevant KB per role
|
||
|
|
- **Context-Aware Responses** - AI behavior adapts to role requirements
|
||
|
|
- **Custom Suggestions** - Role-specific quick actions
|
||
|
|
- **Tool Integration** - Calendar, tasks, documents, meetings, notes
|
||
|
|
- **Persistent Role Memory** - Remembers user role across sessions
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Package Structure
|
||
|
|
|
||
|
|
```
|
||
|
|
office.gbai/
|
||
|
|
├── office.gbdialog/
|
||
|
|
│ ├── start.bas # Role selection and configuration
|
||
|
|
│ ├── api-integration.bas # External API connections
|
||
|
|
│ ├── data-sync.bas # Data synchronization
|
||
|
|
│ └── document-processor.bas # Document handling
|
||
|
|
├── office.gbkb/ # Knowledge bases by role
|
||
|
|
│ ├── management/
|
||
|
|
│ ├── documentation/
|
||
|
|
│ ├── products/
|
||
|
|
│ ├── hr-policies/
|
||
|
|
│ └── budgets/
|
||
|
|
└── office.gbot/
|
||
|
|
└── config.csv # Bot configuration
|
||
|
|
```
|
||
|
|
|
||
|
|
## Scripts
|
||
|
|
|
||
|
|
| File | Description |
|
||
|
|
|------|-------------|
|
||
|
|
| `start.bas` | Main entry with role selection and context setup |
|
||
|
|
| `api-integration.bas` | Connect to external office systems |
|
||
|
|
| `data-sync.bas` | Sync data across office applications |
|
||
|
|
| `document-processor.bas` | Process and manage documents |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Supported Roles
|
||
|
|
|
||
|
|
### Manager
|
||
|
|
|
||
|
|
- **Context**: Executive assistant for reports, team management, strategic decisions
|
||
|
|
- **Knowledge Bases**: management, reports, team-policies
|
||
|
|
- **Suggestions**: Team performance, Generate report, Schedule meeting
|
||
|
|
|
||
|
|
### Developer
|
||
|
|
|
||
|
|
- **Context**: Technical assistant for documentation, APIs, coding best practices
|
||
|
|
- **Knowledge Bases**: documentation, apis, coding-standards
|
||
|
|
- **Suggestions**: Search documentation, API reference, Code review checklist
|
||
|
|
|
||
|
|
### Customer Support
|
||
|
|
|
||
|
|
- **Context**: Customer service assistant focused on resolving issues
|
||
|
|
- **Knowledge Bases**: products, support, faq
|
||
|
|
- **Suggestions**: Track my order, Product information, Contact support
|
||
|
|
|
||
|
|
### HR
|
||
|
|
|
||
|
|
- **Context**: HR assistant for employee matters, policies, benefits
|
||
|
|
- **Knowledge Bases**: hr-policies, benefits, onboarding
|
||
|
|
- **Suggestions**: Employee handbook, Benefits overview, New hire checklist
|
||
|
|
|
||
|
|
### Finance
|
||
|
|
|
||
|
|
- **Context**: Finance assistant for budgets, expenses, financial reports
|
||
|
|
- **Knowledge Bases**: budgets, expenses, financial-reports
|
||
|
|
- **Suggestions**: Expense policy, Budget status, Approval workflow
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Available Tools
|
||
|
|
|
||
|
|
| Tool | Description |
|
||
|
|
|------|-------------|
|
||
|
|
| `calendar` | Schedule and manage appointments |
|
||
|
|
| `tasks` | Create and track to-do items |
|
||
|
|
| `documents` | Access and manage documents |
|
||
|
|
| `meetings` | Schedule and join meetings |
|
||
|
|
| `notes` | Create and search notes |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Sample Conversation
|
||
|
|
|
||
|
|
### Role Selection
|
||
|
|
|
||
|
|
```
|
||
|
|
Bot: Welcome to the Office Assistant!
|
||
|
|
Please select your role:
|
||
|
|
|
||
|
|
User: manager
|
||
|
|
|
||
|
|
Bot: Welcome, Manager! I can help with reports, team
|
||
|
|
management, and policies.
|
||
|
|
|
||
|
|
Quick Actions:
|
||
|
|
• Team performance
|
||
|
|
• Generate report
|
||
|
|
• Schedule meeting
|
||
|
|
```
|
||
|
|
|
||
|
|
### Manager Interaction
|
||
|
|
|
||
|
|
```
|
||
|
|
User: I need to review my team's performance
|
||
|
|
|
||
|
|
Bot: I'll help you review team performance. Here's a summary:
|
||
|
|
|
||
|
|
📊 Team Performance Dashboard
|
||
|
|
|
||
|
|
Active Projects: 5
|
||
|
|
Completed This Month: 3
|
||
|
|
|
||
|
|
Top Performers:
|
||
|
|
• Sarah Chen: 12 tasks completed
|
||
|
|
• Mike Johnson: 10 tasks completed
|
||
|
|
|
||
|
|
Pending Approvals: 2
|
||
|
|
|
||
|
|
Would you like a detailed report or to schedule 1:1s?
|
||
|
|
```
|
||
|
|
|
||
|
|
### Developer Interaction
|
||
|
|
|
||
|
|
```
|
||
|
|
User: How do I implement pagination in our API?
|
||
|
|
|
||
|
|
Bot: Based on our API documentation, here's the pagination pattern:
|
||
|
|
|
||
|
|
GET /api/v1/users?page=1&per_page=20
|
||
|
|
|
||
|
|
Response includes:
|
||
|
|
• data: Array of results
|
||
|
|
• meta.total: Total count
|
||
|
|
• meta.page: Current page
|
||
|
|
• links.next: Next page URL
|
||
|
|
|
||
|
|
Our coding standards recommend cursor-based pagination
|
||
|
|
for large datasets.
|
||
|
|
|
||
|
|
📄 Source: docs/api/pagination.md
|
||
|
|
```
|
||
|
|
|
||
|
|
### Customer Support Interaction
|
||
|
|
|
||
|
|
```
|
||
|
|
User: Customer asking about order #12345
|
||
|
|
|
||
|
|
Bot: I found order #12345. Here are the details:
|
||
|
|
|
||
|
|
📦 Order Status: Shipped
|
||
|
|
📅 Shipped: May 14, 2025
|
||
|
|
🚚 Carrier: FedEx
|
||
|
|
📍 Tracking: 7891234567890
|
||
|
|
|
||
|
|
Expected delivery: May 17, 2025
|
||
|
|
|
||
|
|
Would you like to:
|
||
|
|
• Send tracking info to customer
|
||
|
|
• Create a support ticket
|
||
|
|
• Escalate to supervisor
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Configuration
|
||
|
|
|
||
|
|
Configure in `office.gbot/config.csv`:
|
||
|
|
|
||
|
|
| Parameter | Description | Example |
|
||
|
|
|-----------|-------------|---------|
|
||
|
|
| `Default Role` | Role when none selected | `customer` |
|
||
|
|
| `Remember Role` | Persist role across sessions | `true` |
|
||
|
|
| `Role Timeout` | Hours before re-asking role | `24` |
|
||
|
|
| `Theme Color` | UI accent color | `blue` |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## How It Works
|
||
|
|
|
||
|
|
### Role Detection and Setup
|
||
|
|
|
||
|
|
```basic
|
||
|
|
ADD TOOL "calendar"
|
||
|
|
ADD TOOL "tasks"
|
||
|
|
ADD TOOL "documents"
|
||
|
|
ADD TOOL "meetings"
|
||
|
|
ADD TOOL "notes"
|
||
|
|
|
||
|
|
role = GET role
|
||
|
|
|
||
|
|
IF NOT role THEN
|
||
|
|
TALK "Welcome to the Office Assistant!"
|
||
|
|
TALK "Please select your role:"
|
||
|
|
HEAR role AS NAME
|
||
|
|
role = LOWER(role)
|
||
|
|
SET role, role
|
||
|
|
END IF
|
||
|
|
|
||
|
|
SWITCH role
|
||
|
|
CASE "manager"
|
||
|
|
SET CONTEXT "You are an executive assistant helping managers..."
|
||
|
|
USE KB "management"
|
||
|
|
USE KB "reports"
|
||
|
|
USE KB "team-policies"
|
||
|
|
TALK "Welcome, Manager! I can help with reports and team management."
|
||
|
|
|
||
|
|
CASE "developer"
|
||
|
|
SET CONTEXT "You are a technical assistant helping developers..."
|
||
|
|
USE KB "documentation"
|
||
|
|
USE KB "apis"
|
||
|
|
USE KB "coding-standards"
|
||
|
|
TALK "Welcome, Developer! I can help with documentation and APIs."
|
||
|
|
|
||
|
|
' ... more roles
|
||
|
|
END SWITCH
|
||
|
|
```
|
||
|
|
|
||
|
|
### Dynamic Suggestions
|
||
|
|
|
||
|
|
```basic
|
||
|
|
CLEAR SUGGESTIONS
|
||
|
|
|
||
|
|
SWITCH role
|
||
|
|
CASE "manager"
|
||
|
|
ADD SUGGESTION "performance" AS "Team performance"
|
||
|
|
ADD SUGGESTION "report" AS "Generate report"
|
||
|
|
ADD SUGGESTION "meeting" AS "Schedule meeting"
|
||
|
|
|
||
|
|
CASE "developer"
|
||
|
|
ADD SUGGESTION "docs" AS "Search documentation"
|
||
|
|
ADD SUGGESTION "api" AS "API reference"
|
||
|
|
ADD SUGGESTION "review" AS "Code review checklist"
|
||
|
|
|
||
|
|
CASE "customer"
|
||
|
|
ADD SUGGESTION "order" AS "Track my order"
|
||
|
|
ADD SUGGESTION "product" AS "Product information"
|
||
|
|
ADD SUGGESTION "support" AS "Contact support"
|
||
|
|
END SWITCH
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Customization
|
||
|
|
|
||
|
|
### Adding New Roles
|
||
|
|
|
||
|
|
Extend the `start.bas` file:
|
||
|
|
|
||
|
|
```basic
|
||
|
|
CASE "sales"
|
||
|
|
SET CONTEXT "You are a sales assistant helping with leads and deals."
|
||
|
|
USE KB "sales-playbook"
|
||
|
|
USE KB "pricing"
|
||
|
|
USE KB "competitors"
|
||
|
|
TALK "Welcome, Sales! I can help with leads, pricing, and proposals."
|
||
|
|
|
||
|
|
CLEAR SUGGESTIONS
|
||
|
|
ADD SUGGESTION "leads" AS "View my leads"
|
||
|
|
ADD SUGGESTION "quote" AS "Generate quote"
|
||
|
|
ADD SUGGESTION "pipeline" AS "Pipeline status"
|
||
|
|
```
|
||
|
|
|
||
|
|
### Custom Knowledge Bases
|
||
|
|
|
||
|
|
Create role-specific knowledge bases in `office.gbkb/`:
|
||
|
|
|
||
|
|
```
|
||
|
|
office.gbkb/
|
||
|
|
├── sales-playbook/
|
||
|
|
│ ├── objection-handling.md
|
||
|
|
│ ├── pricing-guide.md
|
||
|
|
│ └── competitor-comparison.md
|
||
|
|
```
|
||
|
|
|
||
|
|
### Role-Specific Tools
|
||
|
|
|
||
|
|
Register different tools per role:
|
||
|
|
|
||
|
|
```basic
|
||
|
|
CASE "manager"
|
||
|
|
ADD TOOL "calendar"
|
||
|
|
ADD TOOL "tasks"
|
||
|
|
ADD TOOL "team-report"
|
||
|
|
ADD TOOL "approve-request"
|
||
|
|
|
||
|
|
CASE "developer"
|
||
|
|
ADD TOOL "search-docs"
|
||
|
|
ADD TOOL "api-tester"
|
||
|
|
ADD TOOL "code-review"
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Integration Examples
|
||
|
|
|
||
|
|
### With Calendar
|
||
|
|
|
||
|
|
```basic
|
||
|
|
' Schedule meeting for manager
|
||
|
|
IF role = "manager" THEN
|
||
|
|
TALK "I'll schedule the team meeting."
|
||
|
|
CREATE CALENDAR EVENT "Team Standup", tomorrow + " 9:00 AM", 30
|
||
|
|
END IF
|
||
|
|
```
|
||
|
|
|
||
|
|
### With Document System
|
||
|
|
|
||
|
|
```basic
|
||
|
|
' Generate document based on role
|
||
|
|
SWITCH role
|
||
|
|
CASE "hr"
|
||
|
|
template = "offer-letter-template.docx"
|
||
|
|
CASE "sales"
|
||
|
|
template = "proposal-template.docx"
|
||
|
|
CASE "finance"
|
||
|
|
template = "budget-template.xlsx"
|
||
|
|
END SWITCH
|
||
|
|
|
||
|
|
document = GENERATE FROM TEMPLATE template WITH data
|
||
|
|
```
|
||
|
|
|
||
|
|
### With Task Management
|
||
|
|
|
||
|
|
```basic
|
||
|
|
' Create role-appropriate tasks
|
||
|
|
IF role = "manager" THEN
|
||
|
|
CREATE TASK "Review Q4 budget", "high", manager_email
|
||
|
|
CREATE TASK "Approve team PTO requests", "medium", manager_email
|
||
|
|
END IF
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Best Practices
|
||
|
|
|
||
|
|
1. **Clear role definitions** - Define clear boundaries for each role
|
||
|
|
2. **Relevant suggestions** - Keep quick actions useful for each role
|
||
|
|
3. **Appropriate KBs** - Only load necessary knowledge bases
|
||
|
|
4. **Security awareness** - Restrict sensitive data by role
|
||
|
|
5. **Regular updates** - Keep knowledge bases current
|
||
|
|
6. **Feedback loops** - Monitor which features each role uses
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Troubleshooting
|
||
|
|
|
||
|
|
| Issue | Cause | Solution |
|
||
|
|
|-------|-------|----------|
|
||
|
|
| Wrong KB loaded | Role not set correctly | Check role detection logic |
|
||
|
|
| Missing suggestions | Role not in switch | Add role to all switch blocks |
|
||
|
|
| Context confusion | Multiple roles used | Clear context between role changes |
|
||
|
|
| Slow responses | Too many KBs loaded | Load only essential KBs per role |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Use Cases
|
||
|
|
|
||
|
|
- **Corporate Offices** - Multi-department support
|
||
|
|
- **Startups** - Flexible role-based assistance
|
||
|
|
- **Remote Teams** - Unified office assistant
|
||
|
|
- **Enterprise** - Department-specific knowledge management
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Related Templates
|
||
|
|
|
||
|
|
- [Contacts](./template-crm-contacts.md) - Contact management
|
||
|
|
- [Reminder](./template-reminder.md) - Task and reminder management
|
||
|
|
- [CRM](./template-crm.md) - Full CRM for sales roles
|
||
|
|
- [Analytics](./template-analytics.md) - Platform analytics for managers
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## See Also
|
||
|
|
|
||
|
|
- [Templates Reference](./templates.md) - Full template list
|
||
|
|
- [Template Samples](./template-samples.md) - Example conversations
|
||
|
|
- [gbdialog Reference](../chapter-06-gbdialog/README.md) - BASIC scripting guide
|