CRMconnect Azuvio · Docs

Customer Support / Helpdesk

Roles covered: Support Agent · Support Team Lead · Helpdesk Manager · Knowledge Manager
Main modules: Tickets · Email Pipe · Knowledge Base · WhatsApp · Appointly · Surveys · Announcements · Spam Filters


Who uses this guide

Role What they do in CRMConnect
Support Agent Responds to tickets, uses predefined replies, manages WhatsApp conversations
Support Team Lead Distributes and tracks team tickets, escalates, monitors response times
Helpdesk Manager Configures departments, statuses, priorities, escalation flows, reports
Knowledge Manager Creates and maintains the knowledge base, converts ticket solutions into articles

Support module map

INCOMING CHANNELS                TICKET MANAGEMENT
─────────────────                ─────────────────
Email → pipe.php                 Configurable statuses
Client portal → form             Priorities (Low/Medium/High/Urgent)
WhatsApp → chat                  Departments + routing
Manual → agent creates           Assignment per agent
                                 Custom fields

COMMUNICATION                    SELF-SERVICE
─────────────                    ────────────
Predefined replies               Knowledge Base (articles)
Internal notes (staff only)      Client portal (ticket history)
Attachments (files)              Article search
WhatsApp quick replies           Article feedback (like/dislike)
Automated email templates        Announcements

SCHEDULING & FOLLOW-UP           REPORTING
──────────────────────           ─────────
Appointly (callbacks)            Ticket dashboard
Appointly (appointments)         Per-agent metrics
Surveys (client satisfaction)    Response time
Automatic reminders              Tickets by department

Morning (15–20 min)

1. New and unanswered tickets
/admin/tickets → filter status Open + adminread = 0
Red tickets = unread by staff (a new message from the client).

2. In Progress tickets with no activity > 24h
Filter status = In Progress + lastreply older than yesterday
These tickets need follow-up or escalation.

3. WhatsApp — unread messages
/admin/whatsapp/interaction — new or unanswered conversations
Process in parallel with tickets.

4. Callbacks scheduled today
/admin/appointly/appointments → filter today's date
Prepare for the call: read the ticket/client history.

During the day

New ticket received
  ↓ Read the full message + client history
  ↓ Send reply (from predefined replies or written)
  ↓ Change status: Open → In Progress or Answered
  ↓ If you can't resolve: escalate (change department or agent)

Client replies to an Answered ticket
  → Ticket automatically returns to Open
  → Push notification in CRM
  → Process again

Weekly (Manager/Team Lead)

  • Ticket report — volume, average resolution time, distribution by agent
  • Old tickets — unresolved > 7 days: review and decide
  • KB articles — which tickets repeated → candidates for a new article
  • Client feedback — responses to satisfaction surveys

Tickets — structure and key fields

Where: /admin/tickets

Main fields on a ticket

Field Notes
ticketid Unique auto-increment number — the primary reference
ticketkey 32-character hash for the public access URL
subject Title of the issue
message Initial description
date Ticket creation timestamp
lastreply Last message (regardless of who sent it) — basis for informal SLA
userid / contactid The client and the specific contact
department Responsible department
priority Urgency (customizable)
service Service category (if enabled)
status Current status
assigned Assigned agent
project_id Associated project (optional)
adminread 0 = agent has not read the last message (red badge)
clientread 0 = client has not read the last reply

Ticket → client relationship

Situation Fields populated
Registered client userid = client ID + contactid = specific contact ID
Unregistered email email = sender's address, name = name
Staff opens ticket admin = agent ID

Statuses, priorities, and departments

Ticket statuses

Where: /admin/tickets/statuses

Statuses are fully configurable — you can add, edit, color, and reorder them. Each has:

  • Name
  • Hex color (visual display in the list)
  • Display order

Typical statuses and their behavior:

Status Code Behavior
Open 1 New unprocessed ticket or with a new reply from the client
In Progress 2 Agent is working; client reply does NOT change the status
Answered 3 Agent has replied — awaiting client confirmation
On Hold 4 Suspended (waiting for external information or another team)
Closed 5 Resolved — review email automatically sent

Default rule: When the client replies to an Answered ticket → status automatically returns to Open. On an In Progress ticket → status stays In Progress.

Ticket priorities

Where: /admin/tickets/priorities

Configurable — you can add as many levels as needed. Standard examples:

Priority Recommended response time
Low 72 hours
Medium 24 hours
High 4 hours
Urgent 1 hour

Note: CRMConnect does not apply automatic time-based escalation. Times are team conventions — monitoring and escalation are manual.

Support departments

Where: /admin/departments

Each department has:

  • Name (e.g., Technical Support, Billing, Sales, General)
  • Dedicated email address — emails received at this address automatically create tickets in that department
  • Assigned staff — determines who sees the department's tickets

Services (ticket categories)

Where: /admin/tickets/services (enabled from settings)

Additional classification: Bug, Feature Request, Question, Installation, Training.
Useful for reporting: how many tickets per issue type.


Responding to a ticket — practical guide

Opening the ticket → reading the context

Before responding:

  1. Conversation history — read the entire thread
  2. Client profile — click the client's name → see the account, invoices, active contracts
  3. Previous tickets — from the client profile, Tickets tab → patterns of recurring issues

Sending your reply

Reply options:

Type Visible to client When to use
Reply Yes The actual response to the client
Internal Note No (staff only) Notes for colleagues, internal observations, internal escalation

Predefined reply (1 click):

  • Dropdown in the reply window → select the template → text is automatically inserted
  • Edit if needed → send

Attachments:

  • Add files directly to the reply
  • Allowed types configured by admin (ticket_attachments_file_extensions)
  • Maximum number per reply (maximum_allowed_ticket_attachments)

Changing status on send

With each reply, select the new status:

  • Answered — you've replied, waiting for the client
  • In Progress — still working, more to check
  • On Hold — suspended pending an external action
  • Closed — fully resolved

Reassigning the ticket

If the ticket isn't for you:

  • Change the department → another department takes it over
  • Change the assigned agent (assigned field) → colleague receives notification
  • Internal note → explain the context and what has already been checked

Email Pipe — how it works

File: pipe.php (configured on the mail server)

Complete flow

Email sent by client to [email protected]
  ↓
Mail server → forward to pipe.php
  ↓
Spam filter check (sender, subject, phrase)
  ↓
Rate limit check: max 10 tickets / 15 min / sender
  ↓
Subject contains [Ticket ID: 123]?
  ├── YES → reply added to ticket 123
  └── NO → NEW ticket created
  ↓
Department determined from To: address ([email protected] → Technical Support)
  ↓
Client identified by email → `userid` populated
  ↓
Email attachments → saved to /uploads/ticket_attachments/
  ↓
Notification sent to staff in department

Rate limiting

Exact limit: 10 new tickets in any 15-minute window per sender.

If exceeded → the email is silently ignored (no ticket is created). Useful for blocking automated spam.

Email body processing

Step What the system does
1 Prefers HTML over plain text
2 If ticket_import_reply_only = 1 → extracts only the latest reply (ignores quotes)
3 Sanitizes HTML — keeps <br>, <a>, removes the rest
4 XSS clean
5 Removes emojis
6 Converts newlines to <br />

Configuring the email pipe

Key settings from /admin/settings → Email Piping:

Setting Value Effect
email_piping_only_registered 1 Accepts tickets only from emails registered as clients
email_piping_only_replies 1 Does not create new tickets from email — only replies to existing ones
ticket_import_reply_only 1 Extracts only the latest reply from email (ignores quotes)
email_piping_default_priority Priority ID Default priority for tickets from email
default_ticket_reply_status Status ID Status after a client reply (default: 3 = Answered)

Spam Filters

Where: /admin/spam_filters/view/tickets

Filter types

Type Field checked Example
sender Sender email address [email protected]
subject Email subject *unsubscribe*, *out of office*
phrase Message body "click here to unsubscribe"

Hard-coded filters (always active)

Regardless of configured filters, these subjects are automatically blocked:

  • Mail delivery failed
  • failure notice
  • Returned mail: see transcript for details
  • Undelivered Mail Returned to Sender

Blocking an entire domain

There is no domain-level blocking. Workaround:

  1. Add each address from the domain as a sender filter
  2. Or add a phrase filter with text specific to emails from that domain

Filters also apply to leads

rel_type can be tickets or leads — the same filtering mechanism also protects lead capture from email.


Client portal — what the client sees and does

URL: /clients/tickets

Actions available to the client

Action Details
Open new ticket Fill in: subject, department, priority (if permitted), message, attachments
View ticket history All company tickets, filtered by status
Reply to ticket Text + attachments
Change status If allow_customer_to_change_ticket_status = 1
Search Knowledge Base Articles visible to the public

View conversation (bidirectional thread)

The conversation is displayed as a bidirectional chat:

  • Client messages — left
  • Staff messages — right with "STAFF" badge
  • Timestamp per message
  • Attachments with image preview

Custom fields in the client portal

If a custom field has show_on_client_portal = 1, it appears when creating a ticket from the portal. Useful for: contract number, product model, equipment serial number.


Knowledge Base — managing articles

Where: /admin/knowledge_base

Structure

Groups (tblknowledge_base_groups)
  │  Name, color, order, visibility
  │
  └── Articles (tblknowledge_base)
        Title, HTML content, visibility, order
        Visible to clients (staff_article=0) or staff-only (1)

Key fields on an article

Field Notes
subject Article title
description HTML content — editable rich text
slug SEO-friendly URL, auto-generated, deduplicated
active 1 = published, 0 = draft
staff_article 0 = visible to clients, 1 = internal staff only
articlegroup The group it appears in
article_order Order within group (drag-and-drop reordering)

Creating an article from a ticket

A resolved ticket with a valuable solution → KB article:

  1. Copy the reply from the ticket
  2. /admin/knowledge_baseAdd Article
  3. Title: the resolved issue (phrased as a question: "How do I configure X?")
  4. Content: the solution steps, clear and with images if needed
  5. Group: appropriate category
  6. staff_article = 0 → visible to clients in portal
  7. Publish

Article feedback

Clients can vote on articles (like/dislike) — recorded in tblknowedge_base_article_feedback with IP for deduplication. Use feedback to:

  • Identify incomplete or unclear articles
  • Prioritize which articles to improve
  • Validate that articles actually solve the problem

Client portal: The search field in the Knowledge Base searches full-text in the title and content — serves as level 0 self-service before the client opens a ticket.

Staff: The agent can search the KB and insert a link to an article in the ticket reply.


Predefined Replies

Where: /admin/tickets/predefined_replies

How they work

  1. Manager creates standard replies for frequent situations
  2. When replying to a ticket → dropdown Select Predefined Reply
  3. Agent selects the template → text is automatically inserted in the reply field
  4. Agent personalizes if needed → sends

Examples of useful predefined replies

Situation Reply content
Acknowledgment "We have received your ticket and will process it within 24h..."
Request for information "To resolve the issue, we need: (1) contract number, (2) error screenshot..."
Issue resolved "The issue has been resolved. Please check and confirm that everything is working..."
Escalation "Your issue has been escalated to our specialist team who will get back to you within..."
Closing for inactivity "Since we have not received a response in the last 7 days, we are closing this ticket. You can reopen it at any time..."

Organization

Predefined replies have no category in the database — if you have many, use a prefix for visual organization: [Technical] Access error, [Billing] Duplicate invoice, [General] Acknowledgment.


WhatsApp for support

Where: /admin/whatsapp/interaction

Key features for support

Feature Description
Bidirectional chat Receive and send WhatsApp messages directly from the CRM
Client link Conversation is linked to the client profile
Quick Replies Predefined responses for WhatsApp — similar to predefined replies in tickets
Template campaigns Mass messages for status notifications, promotions
Bots Chatbot configured for automatic responses to simple messages
Groups WhatsApp Business group management
Activity Log Full conversation history per contact

Integration with tickets

WhatsApp messages can be linked to tickets:

  • From a WhatsApp conversation → create a ticket for a more complex issue
  • The ticket reply can also be sent via WhatsApp simultaneously

WhatsApp Quick Replies

/admin/whatsapp/QuickReplies — quick replies library:

  • Insert with / followed by keyword
  • Useful for: business hours, portal link, standard procedures

Appointly — scheduling and callbacks

Where: /admin/appointly

Callbacks scheduled for support

When a client has an issue that requires a phone call:

1. From the open ticket or client profile
   ↓
2. Add Callback Appointment:
   - Date and time
   - Responsible (the agent who calls)
   - Reminders (e.g., 30 min before)
   ↓
3. Agent receives reminder (email/SMS)
   ↓
4. Makes the call → notes the resolution in the ticket
   ↓
5. Marks the callback as Finished

Key fields on an appointment:

Field Notes
subject Subject of the call/meeting
date + start_hour When it takes place
reminder_before How many minutes/hours/days before we send the reminder
email / phone Client contact details
Google Meet link If it's a video meeting — generated automatically
finished / cancelled Status after completion

Appointment history

/admin/appointly/appointments_history — all completed appointments, useful for auditing and reporting call volumes.


Post-ticket satisfaction surveys

Where: /admin/surveys

Automatic flow (via Workflow Automation)

Trigger: Ticket status → Closed
  ↓ Wait: 1 hour (or immediately)
  ↓ Action: Send Survey "Support Satisfaction" → client's email

The survey contains:

  • 1-5 rating for the support experience
  • Free field: "What could we improve?"
  • Optional: NPS (Net Promoter Score)

Results appear in /admin/surveys → Results tab — aggregated and per individual response.


Announcements for clients

Where: /admin/announcements

When to use announcements in support

  • Planned maintenance: "The platform will be unavailable Saturday 02:00–04:00"
  • Active issue: "We are investigating an issue with the invoicing module — the team is working on a resolution"
  • New feature: "Version X.Y has been released — see the update guide"
  • Support hours change: "Holiday schedule: December 24–25 — limited support"

Configuring an announcement

Field Notes
name Announcement title
message HTML content — may include links
showtousers 1 = visible in the client portal
showtostaff 1 = visible to staff at login

The announcement remains visible until the user confirms (dismisses) it. You can republish the same announcement by deleting the dismiss records.


Support metrics and reporting

Available dashboard widgets

Where: Main dashboard → ticket widgets

Widget What it shows
Open tickets Total number of unresolved tickets
By status Pie distribution: Open / In Progress / Answered / Closed
By priority Urgent / High / Medium / Low
By agent How many tickets each agent has
By department Distribution per department
Average response time Average time to first reply
Overdue Tickets with no activity > configurable threshold
Timeline Chronological activity

Key metrics for support management

Metric Formula / Source
Time to First Response lastreply (first staff reply)date (ticket creation)
Resolution Time data_closeddate (ticket creation)
First Contact Resolution (FCR) Tickets resolved with one reply / total tickets
Ticket Volume Count of tickets created per period
Agent Load Count of tickets assigned = agent_id AND status ≠ Closed
Customer Satisfaction Average rating from post-ticket surveys
KB Effectiveness Count article views / count tickets on the same topic

Available filters in the ticket list

  • Status (Open, In Progress, Answered, Closed)
  • Priority
  • Department
  • Assigned agent
  • Service
  • Period (date range)
  • Specific client
  • Tag

Custom fields on tickets

Where: /admin/custom_fields → entity: Tickets

Add business-specific fields not in the standard form:

Example Type When useful
Equipment serial number Text Hardware support
Contract number Text Service support
Software version Dropdown IT support
Problem URL Link Web/SaaS support
Last update date Date System support
SLA priority Dropdown Support tier (Basic/Premium/Enterprise)

Visible in client portal: If show_on_client_portal = 1, the client fills in the field when creating the ticket.


Configurable in Workflow Automation (/admin/workflow_automation):

Trigger Action Benefit
NEW ticket created Push notification → department agent Zero undetected tickets
NEW ticket with Urgent priority Email + notification → Team Lead Immediate escalation
Ticket with no staff reply > 4h Urgent notification → Team Lead Informal SLA monitored
Ticket with no activity > 7 days Task "Review stagnant ticket" → agent Queue cleanup
Ticket status → Closed Satisfaction survey sent → client (after 1h) Automatic feedback
Client replies to Closed ticket Automatic reopening → Open Zero missed responses
Ticket created by VIP client Priority → Urgent + manager notification Premium SLA

Before activating support, configure:

  1. Departments /admin/departments — including a dedicated email address per department
  2. Statuses /admin/tickets/statuses — with distinctive colors
  3. Priorities /admin/tickets/priorities — 4–5 levels with clear definitions
  4. Services /admin/tickets/services — issue categories (if you want classification)
  5. Predefined replies /admin/tickets/predefined_replies — top 15–20 frequent situations
  6. Spam filters /admin/spam_filters/view/tickets — known-spam addresses and phrases
  7. Email pipe — configure forwarding on the mail server → pipe.php
  8. KB Groups /admin/knowledge_base/manage_groups — knowledge base structure
  9. Satisfaction survey /admin/surveys — a standard post-ticket survey
  10. Workflow Automation — notification and escalation automations

Ask the administrator at /admin/roles:

Permission Required for
Tickets → View / Reply Basic ticket access
Tickets → Edit Changing status, priority, assignment
Tickets → Delete Deleting spam/duplicate tickets (restrictive)
Knowledge Base → View / Create Creating KB articles
Surveys → View / Create Satisfaction surveys
Appointments → View / Create Scheduling callbacks
WhatsApp → View / Reply Support via WhatsApp
Spam Filters → Manage Adding filters (Team Lead+)
Reports → Tickets Access to reports
Announcements → Create Publishing client announcements (Team Lead+)

Quick references

Workflows: Support Ticket Lifecycle

Modules: Support Tickets · Ticket Statuses · Ticket Priorities · Ticket Services · Ticket Predefined Replies · Knowledge Base · Surveys · Spam Filters · Appointments · WhatsApp · WhatsApp API · Announcements

Related departments: Sales Department · OMS & E-commerce

← Back to Department Guides

Tip

Invest in the Knowledge Base and Predefined Replies as permanent infrastructure — together they deflect 30-40% of repeat tickets so agents handle genuinely complex cases rather than answering the same FAQ repeatedly.

Note

SLA breach data broken down by ticket priority and service category is your strongest case for product fixes or additional headcount. Export and present it quarterly — 'Module X generates 35% of all tickets' is a product conversation, not a support one.