botserver/templates/crm/contacts.gbai
Rodrigo Rodriguez (Pragmatismo) 7a5e369402 Add comprehensive documentation for GB templates and configuration
modules

Add detailed README documentation for 15+ bot templates including:
- Platform analytics, BI reporting, and web crawler templates
- CRM, contacts, and marketing automation templates
- Legal document processing and office productivity templates
- LLM tools, LLM server, and API client integration templates
- Reminder management and meta-template for creating new templates

Add new Rust configuration modules:
- BM25 config for Tantivy-based sparse
2025-12-03 16:05:50 -03:00
..
contacts.gbdialog ``` Add KB Statistics keywords and infrastructure documentation 2025-11-30 16:25:51 -03:00
contacts.gbot
README.md Add comprehensive documentation for GB templates and configuration 2025-12-03 16:05:50 -03:00

CRM Contacts Template (contacts.gbai)

A General Bots template for managing contact directories with search, add, update, and company management capabilities.

Overview

The Contacts template provides a complete contact management system with natural language interaction. Users can add new contacts, search the directory, manage company records, and track contact history through conversational AI.

Features

  • Contact Management - Add, update, search, and delete contacts
  • Company Records - Automatic company creation and association
  • Flexible Search - Search by name, email, company, or phone
  • Activity Tracking - Log all contact interactions
  • Tag System - Organize contacts with custom tags
  • Export Capabilities - Export contact lists in various formats

Package Structure

contacts.gbai/
├── README.md
├── contacts.gbdialog/
│   ├── start.bas           # Main entry point and tool registration
│   ├── add-contact.bas     # Add new contacts
│   └── search-contact.bas  # Search contact directory
├── contacts.gbkb/          # Knowledge base for contact help
└── contacts.gbot/
    └── config.csv          # Bot configuration

Scripts

File Description
start.bas Initializes tools, sets context, and displays welcome menu
add-contact.bas Creates new contact records with validation
search-contact.bas Searches directory by multiple fields

Available Tools

The template registers these tools for LLM access:

Tool Description
add-contact Add a new contact to the directory
search-contact Search contacts by any field
update-contact Modify existing contact information
list-contacts List all contacts with optional filters
add-company Create a new company record
contact-history View interaction history for a contact

Data Schema

Contacts Table

Field Type Description
contactid String Unique identifier (CON-YYYYMMDD-XXXX)
firstname String Contact's first name
lastname String Contact's last name
fullname String Combined full name
email Email Email address
phone Phone Phone number
companyname String Associated company
jobtitle String Job title or role
tags String Comma-separated tags
notes String Additional notes
createdby String User who created the record
createdat DateTime Creation timestamp

Companies Table

Field Type Description
companyid String Unique identifier
name String Company name
createdat DateTime Creation timestamp

Activities Table

Field Type Description
contactid String Related contact ID
action String Action description
createdby String User who performed action
createdat DateTime Activity timestamp

Usage

Adding a Contact

Users can add contacts naturally:

  • "Add John Smith from Acme Corp"
  • "Create a new contact for jane@company.com"
  • "Add contact: Mike Johnson, Sales Manager at TechCo"

Or provide structured input:

First Name: John
Last Name: Smith
Email: john.smith@acme.com
Phone: +1-555-123-4567
Company: Acme Corporation
Job Title: VP of Sales
Tags: customer, vip
Notes: Met at trade show

Searching Contacts

Search using natural language:

  • "Find contacts at Acme"
  • "Search for John"
  • "Look up john.smith@acme.com"
  • "Find all VIP contacts"

Search filters:

Filter Example
By name "search John Smith"
By email "search john@company.com"
By company "find contacts at Microsoft"
By phone "lookup +1-555-1234"
By tag "show all VIP contacts"

Managing Companies

Companies are auto-created when adding contacts:

' When adding a contact with a new company
IF companyname THEN
    existingcompany = FIND "companies.csv", "name=" + companyname
    IF COUNT(existingcompany) = 0 THEN
        ' Auto-create company record
        SAVE "companies.csv", companyid, companyname, createdat
    END IF
END IF

Configuration

Configure in contacts.gbot/config.csv:

Parameter Description Example
Theme Color UI accent color blue
Default Tags Auto-applied tags new,prospect
Require Email Email required? true
Duplicate Check Check for duplicates true

Customization

Adding Custom Fields

Extend the contact schema in add-contact.bas:

PARAM department AS STRING LIKE "Engineering" DESCRIPTION "Department name" OPTIONAL
PARAM linkedin AS STRING LIKE "linkedin.com/in/john" DESCRIPTION "LinkedIn profile" OPTIONAL

' Include in save
SAVE "contacts.csv", contactid, firstname, lastname, fullname, email, phone, 
     companyname, jobtitle, department, linkedin, tags, notes, createdby, createdat

Custom Search Filters

Add specialized search in search-contact.bas:

IF searchby = "department" THEN
    results = FIND "contacts.csv", "department LIKE " + searchterm
END IF

IF searchby = "recent" THEN
    cutoff = DATEADD(NOW(), -7, "day")
    results = FIND "contacts.csv", "createdat >= " + cutoff
END IF

Integration with Email

Send welcome emails to new contacts:

' In add-contact.bas after SAVE
IF email THEN
    subject = "Thank you for connecting!"
    body = "Hi " + firstname + ", we look forward to working with you."
    SEND EMAIL email, subject, body
END IF

Integration with CRM Pipeline

Connect contacts to leads:

' Convert contact to lead
PARAM convert_to_lead AS BOOLEAN DESCRIPTION "Create lead from contact" OPTIONAL

IF convert_to_lead THEN
    WITH new_lead
        id = FORMAT(GUID())
        name = fullname
        email = email
        phone = phone
        company = companyname
        source = "contact_conversion"
        status = "new"
        created_at = NOW()
    END WITH
    
    SAVE "leads.csv", new_lead
    TALK "Lead created from contact: " + fullname
END IF

Example Conversations

Adding a Contact

User: Add a new contact
Bot: I'll help you add a new contact. What is their first name?
User: Sarah
Bot: And their last name?
User: Johnson
Bot: What is Sarah's email address?
User: sarah.johnson@techstartup.io
Bot: Phone number? (optional)
User: 555-987-6543
Bot: What company does Sarah work for?
User: TechStartup Inc
Bot: What is her job title?
User: CTO
Bot: ✅ Contact added: Sarah Johnson
     ID: CON-20240115-4821
     Email: sarah.johnson@techstartup.io
     Phone: 555-987-6543
     Company: TechStartup Inc
     Title: CTO

Searching Contacts

User: Find contacts at TechStartup
Bot: Found 2 contact(s):
     ---
     **Sarah Johnson**
     sarah.johnson@techstartup.io
     555-987-6543
     TechStartup Inc
     CTO
     ID: CON-20240115-4821
     ---
     **Mike Chen**
     mike.chen@techstartup.io
     TechStartup Inc
     Developer
     ID: CON-20240110-3392

Best Practices

  1. Validate input - Use PARAM type validation for email and phone
  2. Check duplicates - Search before creating to avoid duplicates
  3. Log activities - Track all changes for audit trail
  4. Use tags - Organize contacts with meaningful tags
  5. Keep notes - Add context about how/where you met contacts
  6. Regular cleanup - Archive inactive contacts periodically

Troubleshooting

Issue Solution
Duplicate contacts Enable duplicate checking in config
Search returns nothing Try broader search terms
Company not linked Ensure company name matches exactly
Missing activities Check activity logging is enabled
  • crm.gbai - Full CRM with leads, opportunities, and pipeline
  • marketing.gbai - Marketing automation with contact segmentation
  • office.gbai - Office productivity with contact directory

Use Cases

  • Sales Teams - Manage prospect and customer contacts
  • HR Departments - Employee and candidate directories
  • Event Management - Attendee and speaker contacts
  • Networking - Professional contact management
  • Customer Support - Customer contact lookup

License

AGPL-3.0 - Part of General Bots Open Source Platform.


Pragmatismo - General Bots