326 lines
9 KiB
Markdown
326 lines
9 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/
|
||
|
|
├── README.md
|
||
|
|
├── 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 |
|
||
|
|
|
||
|
|
## Usage
|
||
|
|
|
||
|
|
### First-Time Setup
|
||
|
|
|
||
|
|
```
|
||
|
|
Bot: Welcome to the Office Assistant!
|
||
|
|
Please select your role:
|
||
|
|
|
||
|
|
User: manager
|
||
|
|
|
||
|
|
Bot: Welcome, Manager! I can help with reports, team management, and policies.
|
||
|
|
```
|
||
|
|
|
||
|
|
### Role-Based Interaction
|
||
|
|
|
||
|
|
**Manager:**
|
||
|
|
```
|
||
|
|
User: Generate a team performance report
|
||
|
|
Bot: [Uses management KB and context]
|
||
|
|
I'll generate the team performance report. What time period?
|
||
|
|
```
|
||
|
|
|
||
|
|
**Developer:**
|
||
|
|
```
|
||
|
|
User: How do I authenticate with the payment API?
|
||
|
|
Bot: [Uses documentation and apis KB]
|
||
|
|
According to our API documentation, payment API authentication
|
||
|
|
uses OAuth 2.0. Here's how to implement it...
|
||
|
|
```
|
||
|
|
|
||
|
|
**Customer Support:**
|
||
|
|
```
|
||
|
|
User: Customer asking about order #12345
|
||
|
|
Bot: [Uses products and support KB]
|
||
|
|
I found order #12345. It was shipped yesterday and should
|
||
|
|
arrive by Thursday. Would you like the tracking number?
|
||
|
|
```
|
||
|
|
|
||
|
|
## 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` |
|
||
|
|
|
||
|
|
## Customization
|
||
|
|
|
||
|
|
### Adding New Roles
|
||
|
|
|
||
|
|
Extend the `start.bas` file:
|
||
|
|
|
||
|
|
```basic
|
||
|
|
CASE "sales"
|
||
|
|
SET CONTEXT "You are a sales assistant helping with leads, opportunities, and closing 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"
|
||
|
|
```
|
||
|
|
|
||
|
|
### Custom System Prompts
|
||
|
|
|
||
|
|
Extend the system prompt per role:
|
||
|
|
|
||
|
|
```basic
|
||
|
|
BEGIN SYSTEM PROMPT
|
||
|
|
You are a role-based office assistant.
|
||
|
|
|
||
|
|
Current user role: ${role}
|
||
|
|
|
||
|
|
Role-specific guidelines:
|
||
|
|
- Manager: Focus on strategic decisions, delegation, and KPIs
|
||
|
|
- Developer: Be technical, reference documentation, suggest best practices
|
||
|
|
- Customer: Be empathetic, focus on resolution, escalate when needed
|
||
|
|
- HR: Maintain confidentiality, be policy-aware, supportive
|
||
|
|
- Finance: Be precise with numbers, follow approval processes
|
||
|
|
|
||
|
|
Adapt your responses and suggestions based on the user's role.
|
||
|
|
END SYSTEM PROMPT
|
||
|
|
```
|
||
|
|
|
||
|
|
## 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
|
||
|
|
```
|
||
|
|
|
||
|
|
## Example Conversations
|
||
|
|
|
||
|
|
### Manager Role
|
||
|
|
|
||
|
|
```
|
||
|
|
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 Role
|
||
|
|
|
||
|
|
```
|
||
|
|
User: How do I implement pagination in our API?
|
||
|
|
Bot: Based on our API documentation, here's the pagination pattern:
|
||
|
|
|
||
|
|
```javascript
|
||
|
|
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. See: docs/api/pagination.md
|
||
|
|
```
|
||
|
|
|
||
|
|
## 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 statement | 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 |
|
||
|
|
|
||
|
|
## Related Templates
|
||
|
|
|
||
|
|
- `contacts.gbai` - Contact management
|
||
|
|
- `reminder.gbai` - Task and reminder management
|
||
|
|
- `crm.gbai` - Full CRM for sales roles
|
||
|
|
- `analytics.gbai` - Platform analytics for managers
|
||
|
|
|
||
|
|
## Use Cases
|
||
|
|
|
||
|
|
- **Corporate Offices** - Multi-department support
|
||
|
|
- **Startups** - Flexible role-based assistance
|
||
|
|
- **Remote Teams** - Unified office assistant
|
||
|
|
- **Enterprise** - Department-specific knowledge management
|
||
|
|
|
||
|
|
## License
|
||
|
|
|
||
|
|
AGPL-3.0 - Part of General Bots Open Source Platform.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**Pragmatismo** - General Bots
|