Skip to content

JamesWMeeks/zoho_ai_full_product

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zoho AI Outreach Copilot (100% free, local-only demo)

This project is a hands-on practice product that matches Devin's stack:

  • Zoho CRM (Leads)
  • AI email / call script generator (stub, no external AI)
  • Voice notes (stub, local demo audio file)
  • Mock Instantly.ai-style outreach queue
  • Zoho widget UI

The goal is to teach you end-to-end Zoho app development: backend ⇄ Deluge ⇄ widget ⇄ Leads module.

1. Project structure

zoho_ai_full_product/
  backend/            # Node.js server (Express)
    server.cjs
    package.json
    .env.example
    public/
      audio/
        demo.mp3      # placeholder audio (empty file, replace with real mp3)
    data/
      prospects.json  # created automatically
  widget/             # Zoho widget UI
    index.html
    style.css
    widget.js
  deluge_examples/    # Deluge functions you can paste into Zoho
    ai_email_from_backend.deluge.txt
    voice_note_from_backend.deluge.txt
    outreach_from_backend.deluge.txt

2. Run the backend locally

cd backend
cp .env.example .env   # or create manually
npm install
npm start

The server listens on http://localhost:3000 by default.

  • Test in Postman / curl:

    curl -X POST http://localhost:3000/api/ai/email \
      -H "Content-Type: application/json" \
      -d '{ "name": "William", "company": "Samplepop", "email": "test@example.com" }'
    curl -X POST http://localhost:3000/api/voice \
      -H "Content-Type: application/json" \
      -d '{ "text": "This is a demo" }'

For voice: put any small mp3 file in backend/public/audio/demo.mp3 and restart the server.

3. Optional: expose backend with ngrok

ngrok http 3000

Copy the HTTPS URL, e.g.:

https://brenda-prosthionic-randal.ngrok-free.app
  • Put this into:
    • backend/.env as PUBLIC_BASE_URL
    • widget/widget.js as BACKEND_BASE_URL
    • Deluge function URLs (instead of http://localhost:3000).

4. Create custom fields in Zoho Leads

In Setup → Modules and Fields → Leads → Layout add:

  • AI_Subject (Single line)
  • AI_Email (Multi-line)
  • Voice_Note_URL (URL or Text)
  • Outreach_Prospect_Id (Single line)
  • Outreach_Status (Single line)

The exact API names will be visible when you edit the field.

5. Create the widget in Zoho

  1. Zip the contents of the widget/ folder (its files directly at root of zip). Example:

    cd widget
    zip -r ../zoho-voice-widget.zip .
  2. In Zoho CRM:

    • Setup → Developer Hub → Widgets → Create Widget
    • Type: Record (or Web Tab while testing)
    • Hosting: Zoho
    • Upload: zoho-voice-widget.zip
    • Index page: /index.html
    • Save.
  3. Associate the widget with the Leads module record page.

When you open any Lead record, you should see the widget panel with:

  • Lead name / company / email
  • AI email section with a Generate / Refresh button
  • Voice note section with Generate from email
  • Outreach section with Send to mock Instantly.ai

6. How the flows work

From widget (no Deluge required)

  1. Widget loads lead data using ZOHO.CRM.API.getRecord.

  2. Buttons call your Node backend:

    • /api/ai/email → returns subject & body
    • /api/voice → returns audioUrl
    • /api/outreach/add-prospect → returns prospectId + status
  3. Widget saves data back to Zoho with ZOHO.CRM.API.updateRecord.

From workflows (Deluge path, optional)

Import the code from deluge_examples/*.txt into Zoho functions and call them from Workflow Rules (e.g. on lead create).

This lets you practise serverless automation + HTTP integration.

7. Next improvements you can try

  • Replace the stub email generator with a real LLM (Ollama, OpenAI, etc).
  • Replace /api/voice with real TTS (ElevenLabs or an open-source model).
  • Call real Instantly.ai / other outreach APIs instead of the mock queue.
  • Add logging & error panels to the widget.
  • Create a Deals or Calls view that shows all prospects & their status.

This repo is intentionally small but hits all of Devin's requirements: Zoho + AI + voice + outreach + widgets + Deluge + Node backend.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors