Workflow: ArvisAI — Asistent AI & Transcriere Audio
Module implicate: ArvisAI (Chat · Image Generator · Audio Transcription · Audio Translation · Template Engine) · Tickets
Cine îl folosește: Orice staff cu acces activat · Support (auto-reply tichete)
Provider AI: Exclusiv OpenAI (GPT, DALL-E, Whisper)
Overview
ArvisAI este un hub de instrumente AI bazat exclusiv pe OpenAI. Oferă 5 funcționalități distincte accesibile din sidebar, plus o singură integrare automată cu CRM-ul: reply automat la deschiderea unui tichet.
Cele 5 instrumente:
| Instrument | Model OpenAI | Scop |
|---|---|---|
| Chat | GPT (configurabil) | Conversație AI liberă per staff |
| Image Generator | DALL-E 2 / DALL-E 3 | Generare imagini din text |
| Audio Transcription | Whisper-1 | Upload audio → text (aceeași limbă) |
| Audio Translation | Whisper-1 | Upload audio → text în engleză |
| Template Engine | GPT (configurabil) | Generare text din șabloane cu variabile |
Datele sunt private per utilizator. Toate istoricele (chat, imagini, transcrieri, documente) sunt filtrate după
user_id = staff_curent. Nu există vizibilitate cross-user și nu există legătură cu înregistrări CRM (lead, client, proiect) — cu excepția reply-ului automat la tichete.
Transcriere și traducere: numai upload de fișier. Nu există înregistrare în timp real sau input via URL. Formate acceptate:
.mp3,.m4a. Limita de mărime configurabilă (arvisai_audio_transcription_max_size).
Diagrama fluxului
[SETUP — admin, o singură dată]
│
├── ArvisAI → Settings (admin only):
│ ├── arvisai_openai_secret_key (API key OpenAI)
│ ├── Chat model: GPT-3.5-turbo / GPT-4 / GPT-4o / GPT-5 etc.
│ ├── Image model: default / DALL-E-2 / DALL-E-3
│ ├── arvisai_audio_transcription_max_size (bytes, implicit ~100KB)
│ ├── arvisai_audio_transcription_allowed_extensions (.mp3,.m4a)
│ └── Auto ticket reply: arvisai_ai_autoreply_on_opening_ticket (0/1)
│ arvisai_ai_reply_agent_name · agent_title · agent_staff_id
│
↓
════════════════════════════════════
INSTRUMENT 1: CHAT
════════════════════════════════════
│
├── ArvisAI → Chat → scrieți mesajul
├── POST /v1/chat/completions (streaming)
├── Răspuns stocat în arvisai_chat: human_message + ai_response
└── Istoric vizibil doar staff-ului curent (filtrat pe user_id)
│
════════════════════════════════════
INSTRUMENT 2: IMAGE GENERATOR
════════════════════════════════════
│
├── ArvisAI → Image Generator → descrieți imaginea
├── POST /v1/images/generations (DALL-E)
├── Imagine descărcată de pe URL OpenAI → salvată local
│ (modules/arvisai/uploads/generated_images/{id}/)
└── Stocat în arvisai_images (user_id + local image_url)
│
════════════════════════════════════
INSTRUMENT 3: AUDIO TRANSCRIPTION
════════════════════════════════════
│
├── ArvisAI → Audio Transcription → Upload fișier (.mp3/.m4a)
├── Verificare: extensie permisă + mărime ≤ limită configurată
├── Fișier salvat local: uploads/audio_transcription/{id}/
├── POST /v1/audio/transcriptions (Whisper-1)
│ → output: text în ACEEAȘI limbă ca audio-ul original
└── Stocat în arvisai_audio_transcription: audio_file_path + transcription_text
│
════════════════════════════════════
INSTRUMENT 4: AUDIO TRANSLATION
════════════════════════════════════
│
├── ArvisAI → Audio Translation → Upload fișier (.mp3/.m4a)
├── POST /v1/audio/translations (Whisper-1)
│ → output: ÎNTOTDEAUNA în engleză, indiferent de limba sursei
└── Stocat în arvisai_translated_audio: audio_file_path + translated_text
│
════════════════════════════════════
INSTRUMENT 5: TEMPLATE ENGINE
════════════════════════════════════
│
├── ArvisAI → Templates → selectați template
├── Template are câmpuri variabile ({{variable_name}}) definite în custom_inputs JSON
├── Completați câmpurile + alegeți Tone of Voice + Language
├── POST /v1/chat/completions cu prompt = custom_prompt + valori variabile + ton + limbă
├── Output apare în editor TinyMCE
└── Opțional: Save as Document → arvisai_documents (document_name + HTML content)
│
════════════════════════════════════
INTEGRARE CRM: AUTO REPLY TICHETE
════════════════════════════════════
│
├── Condiție: arvisai_ai_autoreply_on_opening_ticket = 1
├── Hook: ticket_created → arvisai_ticket_created_automated_reply()
├── Condiție suplimentară: ticket.admin IS NOT NULL (tichetul să aibă staff asignat)
├── Prompt construit: "I work as a {agent_title} and my name is {agent_name}...
│ Write ticket reply about '{ticket_message}'... reply on the same language..."
├── POST /v1/chat/completions
└── Răspuns adăugat ca reply pe tichet, atribuit lui arvisai_ai_reply_agent_staff_id
adminread = 0 (marcat ca necitit)
[AI UTILIZAT ✓ · TICHET RĂSPUNS AUTOMAT ✓]
Pas cu pas
1. Setup (admin)
Unde: /admin/arvisai → Settings (necesită is_admin())
Configurare obligatorie:
| Opțiune | Descriere |
|---|---|
arvisai_openai_secret_key |
API Key din OpenAI Platform (platform.openai.com) |
Configurare opțională:
| Opțiune | Valoare implicită | Descriere |
|---|---|---|
| Chat model | GPT-3.5-turbo | Modelul folosit pentru chat și template generation |
| Image model | default (DALL-E-2) | default, dall-e-2, dall-e-3 |
arvisai_audio_transcription_max_size |
~100KB | Limita de upload audio (bytes) |
arvisai_audio_transcription_allowed_extensions |
.mp3,.m4a |
Extensii acceptate |
Configurare auto ticket reply:
| Opțiune | Descriere |
|---|---|
arvisai_ai_autoreply_on_opening_ticket |
1 = activat · 0 = dezactivat (implicit) |
arvisai_ai_reply_agent_name |
Numele agentului AI în reply (implicit: „Alex") |
arvisai_ai_reply_agent_title |
Titlul agentului (implicit: „Technical Support") |
arvisai_ai_reply_agent_staff_id |
Staff-ul CRM atribuit ca autor al reply-ului AI |
Atenție: Cu auto-reply activat, orice tichet nou creat (cu staff asignat) va primi automat un răspuns generat de AI. Testați cu un tichet de test înainte de activare în producție.
2. Template Engine — utilizare și creare șabloane
Unde: /admin/arvisai/templates
Șabloane sedate la instalare: Write Proposal · Facebook Ads · Write Contract · Cold Email · Welcome Email · Follow-Up Email · Article Generator · Content Rewrite · Summarize Text · Product Description
Creare șablon personalizat:
| Câmp | Descriere |
|---|---|
template_name |
Denumire |
template_category_id |
Categoria (Emails / Social Media / Contents / Blog Posts / Video / CRM) |
custom_prompt |
Promptul cu placeholder-e {{variable_name}} |
custom_inputs |
JSON cu definițiile câmpurilor UI: `[{"input_name":"...", "input_label":"...", "input_field_type":"textarea |
Exemplu custom_prompt:
Write a cold email for a prospect in the {{industry}} industry.
Focus on {{pain_point}} and mention our {{product_name}} solution.
Opțiuni Tone of Voice (12): funny · casual · excited · professional · witty · sarcastic · feminine · masculine · bold · dramatic · grumpy · secretive
Câmpul Language: text liber — introduceți orice limbă (ex: „Romanian", „French"). Este adăugat la prompt cu instrucțiunea de a scrie în limba respectivă.
3. Audio Transcription vs. Audio Translation
| Transcription | Translation | |
|---|---|---|
| Endpoint OpenAI | /v1/audio/transcriptions |
/v1/audio/translations |
| Limbă output | Aceeași limbă ca audio-ul | Întotdeauna engleză |
| Detecție limbă | Automată (Whisper) | Automată (Whisper) |
| Formate acceptate | .mp3, .m4a |
.mp3, .m4a |
Flux de lucru recomandat:
- Aveți o înregistrare în română → Transcription → obțineți text în română
- Aveți o înregistrare în orice limbă și vreți în engleză → Translation
- Vreți să copiați transcrierea în alt modul CRM (lead, tichet, notă) → manual copy-paste (nu există buton de transfer automat)
4. Documente generate
Unde: /admin/arvisai/documents
Documentele salvate din Template Engine sunt stocate în tblArvisai_documents cu:
document_name— denumirea documentuluidocument_description— conținut HTML (generat în TinyMCE)
Limitări: documentele nu au legătură cu alte entități CRM (lead, client, proiect). Sunt vizibile exclusiv staff-ului care le-a creat (user_id = get_staff_user_id()).
Permisiuni necesare
| Permisiune | Acces |
|---|---|
arvisai → view |
Acces global la toate instrumentele |
arvisai → view_chat |
Instrumentul Chat |
arvisai → view_image_gen / create_image_gen |
Image Generator |
arvisai → view_transcription / create_transcription |
Audio Transcription |
arvisai → view_translation / create_translation |
Audio Translation |
arvisai → view_templates / create_templates |
Template Engine |
arvisai → view_template_categories |
Vizualizare categorii templates |
| Settings ArvisAI | is_admin() exclusiv |
Nota: Nu există permisiunea
create_chat— oricine poate vedea Chat poate și trimite mesaje.
Gotchas
| Problemă | Cauză | Soluție |
|---|---|---|
| „Invalid API Key" la orice operație | arvisai_openai_secret_key greșit sau lipsă |
Reintroduceți API key-ul din OpenAI Platform → API Keys |
| Fișier audio respins la upload | Extensie nepermisă sau depășire limită de mărime | Verificați allowed_extensions + max_size în Settings; convertiți la .mp3 dacă e alt format |
| Traducerea iese în engleză, nu în română | Comportament corect — Translation = întotdeauna engleză | Folosiți Transcription (nu Translation) pentru output în limba originală |
| Auto-reply trimite pe tichete interne | Hook se declanșează pe orice tichet cu admin asignat | Dezactivați arvisai_ai_autoreply_on_opening_ticket sau setați condiții mai stricte manual |
| Imaginile generate nu se afișează | URL OpenAI a expirat înainte de download local | Regenerați imaginea — modulul descarcă automat la generare |
| Documentul generat a dispărut | Filtrat pe user_id — alt utilizator nu vede | Documentele sunt private per staff |
Referințe module
- Tickets — auto-reply la deschiderea tichetului
- WhatsApp — alt canal cu AI replies (bot_type=12, provider separat configurabil)
- ArvisAI — documentație modul
Folosiți Transcrierea Audio pentru a converti apelurile cu clienți înregistrate în note de interacțiune CRM imediat după fiecare apel — transcrierea este gata în secunde și creează un record verbatim care alimentează rezumatele AI și sugestiile de acțiuni următoare.
ArvisAI necesită propria cheie API OpenAI — fiecare cerere de transcriere, traducere și generare este facturată în contul dvs. OpenAI. Monitorizați utilizarea după activare mai ales pe echipele cu volum mare de apeluri pentru a evita costuri API neașteptate.