Perfex Inbox All-in-One documentation

Perfex Inbox All-in-One adds one shared team inbox to Perfex CRM. Email (IMAP/SMTP, Gmail and Microsoft 365), WhatsApp, a live chat widget, web forms, SMS and Instagram or Messenger arrive as conversations that your team assigns, discusses in internal notes, answers and closes — each one linked to the Perfex contact, customer or lead it belongs to.

Rules, teams, business hours and SLA timers keep the queue moving; saved replies, signatures and keyboard shortcuts make answering fast; reports show how quickly you really respond. AI helpers through Perfex AI Staff are optional and only ever propose.

Installation

Requirements

Install

  1. Back up the CRM database and files.
  2. Extract the download perfex-inbox-2.0.0.zip on your computer. Inside are the installable perfex_inbox-2.0.0.zip, this documentation, the changelog and the licenses.
  3. In Perfex, open Setup › Modules, upload the inner perfex_inbox-2.0.0.zip, then install and activate Perfex Inbox All-in-One.
  4. Open Inbox in the sidebar. With no channel yet, the inbox shows how to connect one.
What activation does: creates the module's tables and settings, the staff permissions and the private storage folder for attachments. It does not modify Perfex core files and does not touch Perfex's own ticket email piping. Nothing is read or sent until you connect a channel.

Permissions

Staff rights are set in Setup › Staff › Roles (or per staff member). Administrators can do everything.

FeatureCapabilityAllows
Inbox — ConversationsView (Global)Every conversation of the channels they may use; read, mark read or unread, follow.
View own (assigned to them, and unassigned)Their own conversations, the ones they follow and — with Settings › General › View own also sees unassigned — the ones nobody has yet.
Reply and add notesReply, internal notes, status, snooze, priority, labels on a conversation; take an unassigned conversation.
Assign to othersAssign to any colleague who may open that channel.
Supervise Dialer QueuesCalls › Supervisor: every agent's dialer queue and progress.
ManageLabels, shared saved replies, bulk changes, spam, merge, block a sender.
DeleteMove conversations to the trash and restore them.
Inbox — AdministrationConnect and edit channelsChannels, email apps, WhatsApp templates.
Settings, rules and SLASettings, rules, teams, business hours and SLA policies.
View reportsThe Reports page, CSAT and Lead ROI.
Inbox Outreach (Cadences And Campaigns) — new in 2.0View (Global) · View ownAll cadences and campaigns, or only their own.
Create · Edit · DeleteBuild and change cadences and campaigns.
Switch on cadences, launch campaignsStart sending.
Suppression listSee and add to the list (removing an address: administrators).

Calls need Reply plus access to the number's channel. Leads pages follow Perfex's own lead permissions.

Each channel adds a second check: Everyone with inbox access, or Only the people below (staff, roles or teams). Colleagues mentioned in a note can read that conversation even without channel access, but cannot reply without the reply right.

Files and tables

WhereWhat
modules/perfex_inbox/The module, with its interface font and the Lucide icons. Nothing is loaded from a CDN.
perfex-inbox-storage/<key>/ next to the Perfex folder (default)Attachments under random names without extension (blobs/), downloads in progress (tmp/). <key> differs for every installation and database.
Tables pinb_*Channels, conversations, messages, participants, labels, saved replies, rules, SLA, teams, business hours, activity and the rest.
Options pinb_*Settings. Passwords, tokens and client secrets are stored encrypted with your installation's key.

Upgrade from 1.x

2.0 is a free upgrade for everyone who bought Perfex Inbox: download it from your sellmycode.net account with the same purchase code.

  1. Back up the database and files.
  2. Upload the new perfex_inbox-2.0.0.zip in Setup › Modules (or replace modules/perfex_inbox/), then press Upgrade Database for Perfex Inbox. This also works while the module is inactive, from 1.0.0, 1.1.0, 1.1.1 or 1.1.2.
  3. Every channel, conversation, message, attachment, rule and setting is kept. The new areas start off, CSAT included (administrators see a one-time notice offering to turn it on); turn on what you need in Settings › Features.
  4. For calls, set up Voice and the voice worker; for cadences and campaigns, fill in Sending Rules.
Changed in 2.0: uninstalling keeps your data unless an administrator turns on Delete Inbox Data When the Module Is Uninstalled (Settings › Features).

First steps

  1. Check that Perfex's cron runs every minute. Inbox › Channels shows when the background sync last ran.
  2. Open Inbox › Channels and connect your first channel — usually the support mailbox (IMAP, Gmail or Microsoft 365). The first sync imports the last 14 days.
  3. In Setup › Staff › Roles, give your team the Inbox rights.
  4. In Inbox › Settings, add a team, your business hours and an SLA policy; in Inbox › Rules, switch on a rule that shares new conversations in turn.
  5. In Inbox › Saved Replies, save the answers you write most often and add your signature.
  6. Optional: turn on Voice, Leads, Cadences or Campaigns in Settings › Features.
The inbox with views, channels and labels, the list of conversations, an open email and the customer card
The inbox: views and channels, the list, the conversation and the details panel.

Channels

Inbox › Channels lists every connected channel with its status (Working, Paused, Failing, Needs reconnecting), the last sync, open conversations and its webhook address where it has one. Sync now reads a mailbox at once; the ⋯ menu has Edit settings, Test connection, Pause/Resume and Remove (keep its conversations as history, or delete them too). Add a channel below the list opens the setup page of each kind; every setup page has a How to connect guide.

The channels page
Connected channels with their status and webhook addresses.

Settings every channel has: a name for your team, who may use it, the person new conversations go to when no rule assigns them, and for email the sender name, signature and how often it is read (every 2 minutes by default).

Gmail / Google Workspace

Gmail mailboxes sign in through an OAuth app you create once in your own Google Cloud project. Mail is read with the Gmail API and replies leave from the same mailbox, in the same Gmail thread. No password is stored and no other company sees your mail.

1. Create the Google app (about 10 minutes, once). Open Inbox › Settings › Email apps (or Channels › Email apps) and expand How to create the Google app; the page shows your redirect URI with a Copy button.

  1. Sign in to the Google Cloud console with an account of your company and create a project (or pick one).
  2. In APIs and services › Library, search for Gmail API and click Enable.
  3. Open Google Auth Platform (OAuth consent screen). Audience: choose Internal when your mail is on Google Workspace; choose External for personal Gmail and add the mailboxes as test users.
  4. Under Data access, add the scope https://www.googleapis.com/auth/gmail.modify.
  5. Under Clients, create a client of type Web application. Paste the redirect URI from the inbox into Authorised redirect URIs:
    https://crm.example.com/admin/perfex_inbox/email_oauth/callback/google
  6. Copy the Client ID and Client secret into the inbox and press Save app. The card shows Ready.
Keep the sign-in alive. An External app left in Testing loses its sign-in every 7 days. Internal apps (Workspace) or apps published to production keep it. Gmail access is a restricted scope: publishing an External app to the public needs Google's verification; for your own company's mailboxes, Internal is the simple choice.

2. Connect the mailbox. Channels › Add a channel › Gmail / Google Workspace: enter a name and a sender name, press Continue with Google, sign in with the mailbox and allow access. You return to the inbox with the mailbox connected; mail arrives at the next cron run. INBOX and Sent are always read; Show labels lets you pick other labels to read too.

Email apps with the Google guide, the redirect URI and the client ID
Email apps: the guide, the redirect URI to copy and the app's ID and secret.

Microsoft 365 / Outlook

Microsoft mailboxes sign in through an app registration in your own Microsoft Entra tenant. Mail is read with Microsoft Graph and replies leave from the same mailbox. Shared mailboxes work too.

  1. Sign in to the Microsoft Entra admin center and open App registrations › New registration.
  2. Name it, then pick who may sign in: only your organisation (enter your tenant in the inbox), or any organisation and personal Microsoft accounts (tenant common).
  3. Redirect URI: platform Web, paste the redirect URI shown in the inbox, and register:
    https://crm.example.com/admin/perfex_inbox/email_oauth/callback/microsoft
  4. Certificates and secrets › New client secret. Copy its Value (not the Secret ID) and note the expiry date.
  5. API permissions › Add a permission › Microsoft Graph › Delegated permissions: offline_access, User.Read, Mail.ReadWrite, Mail.Send; for shared mailboxes also Mail.ReadWrite.Shared and Mail.Send.Shared. Then Grant admin consent.
  6. From Overview, copy the Application (client) ID — and the Directory (tenant) ID if only your organisation signs in. In the inbox, fill in the ID, the secret, the tenant (common, organizations, consumers, your tenant ID or your domain) and the secret's expiry date, and press Save app.

Then Channels › Add a channel › Microsoft 365 / Outlook and Continue with Microsoft. For a shared mailbox, sign in with a user who has full access to it and enter the shared mailbox's address in Shared mailbox. Inbox and Sent Items are always read; Show folders adds others.

Client secrets expire (6 to 24 months). With the expiry date entered, the Channels page reminds you 30 days before. Create a new secret in Entra and paste it in Email apps — the mailboxes keep working. Microsoft Graph accepts attachments up to 3 MB per message for replies sent from the inbox.

IMAP / SMTP

Channels › Add a channel › IMAP / SMTP mailbox works with any mail server: your hosting, company mail, Zoho, iCloud, Yahoo and more. Pick your Provider to fill in the servers, then enter the address, user name and password.

App passwords. Gmail over IMAP needs 2-step verification and an app password; Outlook.com allows IMAP only with an app password; Microsoft 365 business mailboxes need Connect with Microsoft instead. iCloud, Yahoo and others also need an app password from their security settings, not your normal password.

Passwords are encrypted and never shown again; leave the field empty to keep the saved one. If you change the server, user name or security, the inbox asks for the password again. Mail servers on localhost or a private network (10.x, 192.168.x) need Settings › Sync and Sending › Allow mail servers on private networks (administrators only).

If Perfex already imports the same mailbox into tickets (Setup › Support › Departments, email piping), the inbox warns you: turn one of them off, or every email arrives twice.

The IMAP mailbox setup page
An IMAP / SMTP mailbox.

WhatsApp

WhatsApp Business connects your number through Meta's WhatsApp Cloud API:

  1. In Meta for Developers, create an app of type Business and add the WhatsApp product.
  2. In WhatsApp › API Setup, add your business phone number and copy its Phone number ID and the WhatsApp Business Account ID.
  3. In Meta Business Settings › System users, create an admin system user, give it the app and the WhatsApp account, and generate a token that never expires with whatsapp_business_messaging and whatsapp_business_management.
  4. In the app's Settings › Basic, copy the App secret. Paste the IDs, the token and the secret into the inbox and save.
  5. In WhatsApp › Configuration, set the Callback URL and Verify token shown by the inbox, then subscribe to the messages field.
  6. Press Test connection. Messages sent to your number now arrive in the inbox.

WhatsApp allows free replies for 24 hours after the customer's last message. After that the composer offers Send template: templates are created and approved in WhatsApp Manager, appear in the inbox by themselves (Refresh loads them) and ask for their placeholder values. Templates with a picture or document header are listed but cannot be sent from the inbox in 1.0.

WhatsApp (installed module) uses the number and token of a WhatsApp module you already run in Perfex (WhatsBot, Whatsbotapi or WhatsApp Cloud API Business Integration); the token is read from that module each time. To receive messages in the inbox, put the inbox's callback URL in the Meta app (the other module then stops receiving them, but can still send). Earlier conversations › Import copies the module's stored conversations into the inbox (text only; safe to run again).

A WhatsApp conversation
A WhatsApp conversation with read ticks and the reply window in the details panel.

Live chat widget

Channels › Add a channel › Live chat widget creates a chat bubble for your website and, if you like, every page of Perfex's customer area (Show on the customer portal).

Paste the code before the closing body tag of every page where the chat should appear:

<script src="https://crm.example.com/perfex_inbox/chat/js/YOUR-KEY" async defer></script>

Chats arrive like any other conversation; replies appear in the visitor's chat at once, and the details panel shows the page, where they came from and the browser. Visitors keep their chat for 30 days in the same browser, so your replies wait for them.

The chat widget
The chat as a visitor sees it.

Web forms

Channels › Add a channel › Web form: choose the fields (short text, email, phone, long text, choice, checkbox; required or not), the texts, an optional consent checkbox, one attached file (up to 10 MB) and a thank-you text or a page to go to. Share the Link to the form, or paste the embed code into your page — it adjusts its height by itself.

Each submission arrives as a new conversation from the email address given, with the answers in the details panel. Forms only receive: answer by email or phone from your other channels, or turn the submission into a lead or ticket. Spam protection: a hidden trap field, a minimum time to fill the form, a limit per visitor and hour, blocked words and allowed websites.

SMS

  1. In Perfex, open Setup › Settings › SMS, fill in your gateway and turn it on.
  2. In Channels › Add a channel › SMS, enter the number customers text and save.
  3. With Twilio, choose Twilio webhook under Replies from customers and save again to see the callback URL.
  4. In the Twilio console, paste the callback URL as the webhook for incoming messages of your number (A message comes in: Webhook, HTTP POST).

Clickatell, MSG91 and other gateways send only; customer replies reach the inbox through Twilio. Messages longer than 1600 characters are refused. Gateways report only whether they accepted a message, so SMS show as sent, never as delivered.

Instagram and Messenger

Facebook Messenger brings messages sent to your Facebook Page, Instagram Direct those sent to your Instagram professional account linked to the Page. Both use your own Meta app: a long-lived Page access token (pages_messaging, pages_manage_metadata; for Instagram also instagram_basic and instagram_manage_messages), the App secret, and the callback URL and verify token from the inbox in the app's webhooks. Test connection also subscribes your Page to the app.

Meta App Review. Meta must approve your app (App Review) before the public can message you through it. Until then it works for people with a role in the app — enough to set it up and test. Meta allows replies for 24 hours after the customer's last message, or 7 days with the Human Agent tag once Meta approved it for your app (Answer for up to 7 days).

Using the inbox

Views and filters

A conversation

A live chat with the visitor details
A live chat: the visitor's page, source and browser in the details panel.

Replying

Writing a note with an @mention
An internal note with an @mention.

Keyboard shortcuts

KeyActionKeyAction
j / kNext / previous conversationoOpen the highlighted conversation
xSelect or unselectrReply
nWrite a noteeClose or reopen
aAssignlLabels
sSnooze⇧ UMark as unread
/SearchEscClose a panel, clear the selection, back to the list
⌘/Ctrl ↵Send the reply or note?This list

On phones the inbox shows one pane at a time: the list, then the conversation with a back button; the details open as a drawer.

Saved replies and signatures

Inbox › Saved Replies has three tabs.

The saved replies list opened with /
Type / in a reply to pick a saved reply.

CRM linking

The Conversations tab of a customer
The Conversations tab on a customer profile.

Rules

Inbox › Rules run in their order and act as the system. Start from a suggestion (share new conversations, out of office reply, label by keyword, waiting too long) or build your own: When → If (all or any conditions) → Then.

PartChoices
WhenA new conversation starts · A customer writes · A customer waits for an answer (checked every minute, needs the condition Waiting) · The status changes
IfChannel, account, sender, subject, message text (contains, starts with, ends with…), label, priority, status, assignee, team, sender in the CRM (known / unknown), business hours (open / closed now), waiting (at least N minutes)
ThenAssign to · Assign in turn within team · Unassign · Set team · Add or remove label · Set priority · Set status · Snooze for · Reply automatically · Notify (assignee, team, inbox administrators) · Add follower · Mark as spam
The rules page
Rules in their order, with conditions, actions and run counts.

Teams, business hours and SLA

First response starts with the customer's first message and stops with your first reply; next response starts again each time the customer writes after you answered; resolution runs until the conversation is closed. Only open time of the business hours counts. Missed targets show in red on the conversation, in the SLA missed view and in the reports; Warn before an SLA target sends a notification first (15 minutes by default). Automatic replies never stop a timer.

SLA policies in the settings
Two SLA policies: VIP clients and Standard, counted in studio hours.

AI helpers

With Perfex AI Staff active, a ready AI route shared with other modules and Settings › AI Helpers › Use AI in the inbox on, the inbox shows AI draft and Translate in the reply box and the AI Assistant card in the details panel. Test checks the connection.

What the AI sees. Message texts of the open conversation only, with email addresses, phone numbers and links replaced by placeholders. No names, attachments, internal notes or CRM data. AI Staff's provider, redaction, budgets and usage log apply; with a local model, messages stay on your network. AI only proposes — nothing is sent or changed until a person does it.

Features (new in 2.0)

Inbox › Settings › Features (the gear on the Inbox bar) has one switch per area. Areas that are off disappear from the menus, their pages answer “not found” and nothing of them runs in the background. After an upgrade from 1.x or a fresh install, everything is off except CSAT.

AreaWhat it addsNeeds
VoiceCalls in the browser, incoming calls, voicemail, recordings, the Power Dialer (Calls in the Inbox bar).Your own Twilio or Telnyx account, public HTTPS, a voice worker.
Call AITranscript, summary, sentiment, talk share and proposed next steps after a call.Voice on, Perfex AI Staff, the provider's transcription.
LeadsLead scores, routing, first-response targets, duplicates and merge (Leads).—
CadencesStep-by-step follow-ups (Cadences).An email, WhatsApp or SMS channel; the postal address in Sending Rules for email steps.
CampaignsBulk email and WhatsApp template sends (Campaigns).An email or WhatsApp channel; opted-in recipients.
CSATOne survey question after a conversation is resolved (Reports › CSAT).An email channel or the web chat.

Below the switches, Limits holds the maximum outbound calls per number per day and Delete Inbox Data When the Module Is Uninstalled (administrators only, off by default).

Feature switches for Voice, Call AI, Leads, Cadences, Campaigns and CSAT, with limits below
Settings › Features.

Voice

Voice adds phone numbers as channels. Agents call from the browser (softphone), incoming calls ring in the browser, and every call becomes a message in the conversation of that phone number, with direction, duration, result, notes, recording and voicemail. Calls run through your own provider account: Twilio (Voice SDK) or Telnyx (Call Control). Call and number fees are billed by the provider. Generic SIP phones are not supported.

Before you start

Twilio

  1. In Twilio, note the Account SID and Auth Token, create an API Key (SID and secret) and a TwiML App. Keep the secrets private; never paste them in a ticket or screenshot.
  2. Turn on Voice in Settings › Features.
  3. In Calls › Numbers › Add Number, enter the credentials, the TwiML App SID and the number in +E.164 form. Pick the Inbox team, business hours, the number's country calling code and the allowed destination calling codes. Saved secret fields stay empty; leave them empty to keep the stored value.
  4. Copy the two webhook URLs shown on the saved number into Twilio: the number's A call comes in webhook and the TwiML App's Voice request URL, both HTTP POST. Twilio signs every request; the inbox checks the signature against the address Perfex is configured with.
  5. Press Queue Connection Test; the result shows under Voice Jobs. It proves the credentials only — make one real call to check audio.
  6. In Twilio, also set Voice Geo Permissions to the countries you call: the inbox blocks premium prefixes and unlisted calling codes, but the provider's own fraud protection is the second layer.

Telnyx

  1. In Telnyx, prepare a number, an API key, the webhook public key (base64, from the portal) and a Call Control Application that owns the number.
  2. Create a separate credential-based SIP connection for agents. It must be internal (SIP URI calling limited to internal) and have no outbound voice profile: agents' browsers never dial the public network themselves. The inbox checks these rules and refuses a connection that breaks them; fix it in Telnyx and the inbox retries within a minute.
  3. In Calls › Numbers › Add Telnyx Number, enter the API key, public key, Call Control Application ID, the agent SIP connection ID and the number, then the same team, hours and calling-code settings as for Twilio.
  4. Set the signed JSON webhook URL shown on the saved number as the webhook of the Call Control Application (API v2). Do not attach it to other connections.
  5. Set up failover in Telnyx. Telnyx controls the call through the inbox's worker. When a new call arrives while the worker is down, the inbox answers 503 so Telnyx retries or uses your failover URL (for example another Perfex server or a voicemail service). The inbox cannot play voicemail while every worker is stopped.
  6. Run both workers (calls and agents, below). Agents get private SIP credentials that expire after ten minutes and are removed when they sign out; the API key and SIP passwords never reach the browser.

The voice worker

Ringing and call control cannot wait for Perfex's one-minute cron, so Voice needs a small PHP process that runs all the time. It runs for up to 60 seconds and exits; your process manager starts it again. One worker per installation (it takes a lock).

# Twilio and Telnyx: call commands
php index.php perfex_inbox/voice_worker/run loop 60 calls
# Telnyx only: agent credentials (a second process)
php index.php perfex_inbox/voice_worker/run loop 60 agents

Example systemd unit (change the paths, PHP binary and user):

[Unit]
Description=Perfex Inbox voice worker
After=network-online.target

[Service]
User=www-data
WorkingDirectory=/var/www/perfex
ExecStart=/usr/bin/php index.php perfex_inbox/voice_worker/run loop 60 calls
Restart=always
RestartSec=1
KillSignal=SIGTERM
TimeoutStopSec=30

[Install]
WantedBy=multi-user.target

Or a Supervisor program:

[program:perfex-inbox-voice]
directory=/var/www/perfex
command=/usr/bin/php index.php perfex_inbox/voice_worker/run loop 60 calls
user=www-data
autostart=true
autorestart=true
stopwaitsecs=30

For Telnyx, add a second unit or program with agents instead of calls. The worker writes a heartbeat; when it is older than 15 seconds the number shows Worker offline, the softphone cannot connect and incoming calls go to voicemail (Twilio) or are refused for failover (Telnyx). Turning Voice off stops the worker on its own.

Calls and the softphone

Recordings, consent and voicemail

The call log
Calls › Call Log with results and Call AI sentiment.

Power Dialer

Calls › Power Dialer works through a list of people one call at a time. It is a preview dialer: the agent sees the next contact and presses Call; the inbox never starts a call on its own.

  1. New Queue: pick the number, then the people — from an Inbox view, a lead/contact/customer picker or a saved selection (up to 1,000). Choose the calling window (for example 09:00–17:00 on weekdays) and the default time zone; a contact's own time zone wins.
  2. The queue starts paused. Connect the softphone, press Resume, then Start Calling.
  3. After each call, pick a disposition (Connected, No Answer, Busy, Callback Requested, Do Not Call…), add a note and press Save and Next. Callbacks and retries come back at the time you set.
Team dialer overview
Calls › Supervisor.

Call AI

With Call AI on (Settings › Features; needs Voice and Perfex AI Staff), choose per number under Calls › Numbers › Call AI: Off, Transcript, summary on request or Transcript and summary after each call. The number must record calls with a consent message. Each finished call then gets:

Transcripts are stored encrypted and removed with the number's recording retention. AI Staff's budgets, permissions and usage log apply.

Call AI summary with talk share and a proposed next step
Call AI on a call: summary, talk share and a next step to approve.

Leads

Leads in the Inbox bar works on Perfex's own leads; Perfex's lead permissions apply.

Leads sorted by score
Leads with scores, first response and a duplicate hint.

Sending rules and the suppression list

Cadences and campaigns share one set of rules (Cadences › Sending Rules) and one suppression list. New right: Inbox Outreach (Cadences And Campaigns) — view, view own, create, edit, delete, switch on cadences and launch campaigns, and the suppression list.

Cadences

A cadence with email, wait, call task and SMS steps
A four-step cadence with results per step.

Campaigns

  1. Audience: customers, contacts and leads with filters, groups, sources and statuses. People without an opt-in, on the suppression list, without an address or listed twice are left out — the counts show why.
  2. Content: email with merge fields, or an approved WhatsApp template. When the first channel has no address or opt-in, a person can fall back to the next (email → WhatsApp → SMS).
  3. Schedule: now or later, speed per hour, quiet hours (20:00–08:00 in the recipient's time).
  4. Review: preview per recipient, a test send to yourself or colleagues, then Launch.
Campaign report
Campaigns › Report.

CSAT surveys

On by default for a new install; after an upgrade from 1.x it starts off and administrators see a one-time notice to turn it on. When a conversation is resolved, the customer gets one question by email or in the web chat, in the same conversation. Settings are on Reports › CSAT › Survey Settings:

Reports › CSAT shows the score, the satisfied share, responses, low ratings, score by week, per agent and team, and the latest comments with Follow Up.

Customer satisfaction report
Reports › CSAT.

Notifications

Perfex bells, each one switchable per person in My Notifications (Settings › Notifications): a conversation is assigned to me; someone mentions me in a note; new message in my conversations; new conversation nobody has yet (for conversations you may take); an SLA target is due soon or was missed; my reply could not be sent (after the retries ran out); a channel fails or needs reconnecting (for staff who manage channels); and a daily summary (offered by an administrator, sent at the hour you set). Bells link straight to the conversation.

Reports

Inbox › Reports for 7, 30 or 90 days or your own range, filtered by channel, account and agent:

Inbox reports
Reports for the last 30 days.

Integrations

Settings › Integrations shows each module and switches its part on or off.

Settings

SectionWhat
GeneralLight or dark, View own also sees unassigned, group emails by subject, reopen closed chats for (14 days), undo send (5 s), images in emails (ask, always, never), keep the trash for (30 days).
Sync and SendingCheck mailboxes every (2 min), first import (14 days), messages per run, time per cron run (40 s), largest attachment (25 MB), chat and form requests per visitor, mail servers on private networks; whether Perfex's cron is running.
Email appsYour Google and Microsoft apps (above).
AutomationRun rules, use the default assignee of each channel, warn before an SLA target.
Teams · Business Hours · SLASee Teams, hours and SLA.
CRMLink senders automatically, recognise colleagues, ticket department and customer email defaults, automatic leads per channel.
AI HelpersUse AI in the inbox, language for summaries, connection test.
NotificationsYour own bells; the team's daily summary and its hour.
IntegrationsBrain Pro, Sentinel, Client Hub and Deliverables parts.
Features (2.0)Switches for Voice, Call AI, Leads, Cadences, Campaigns and CSAT; calls per number per day; delete data on uninstall. See Features.
StorageWhere attachments are kept, whether that folder is private, free space, how to move it.
Safe Mode and RecoveryThe main switch, pause syncing and sending, the outbox and job queue, the activity log with search and CSV export.
Inbox settings
Settings, General section.

Safe mode

Switching the inbox off stops syncing and sending; webhooks answer “try again later” (providers retry), and the chat widget and forms close. Staff pages stay open with a notice so conversations can still be read. Data and files are kept.

SwitchHow
PauseSettings › Safe Mode and Recovery › Pause syncing and sending: for incidents; mailboxes are not read and nothing is sent, replies wait.
One channelChannels › ⋯ › Pause.
Main switchSettings › Safe Mode and Recovery › Inbox on.
DISABLE fileCreate an empty file modules/perfex_inbox/DISABLE; delete it to switch on again. Works without signing in.
Constantdefine('PINB_SAFE_MODE', true); in application/config/app-config.php.

Security notes

SaaS

With a multi-tenant module that gives each tenant its own database, every tenant has its own channels, conversations and storage folder (the folder name carries a key per tenant and database, so a copied site never reads or deletes the original's files). The shared-database mode of some SaaS modules is not supported: the inbox stays off inside such tenants.

Deactivate and uninstall

Deactivating removes the menu, tabs, webhooks, chat widget, forms and the inbox's bells at once, and the cron leaves the inbox alone. Data and files are kept; activate again to continue.

Uninstalling (after deactivating) keeps all inbox data by default since 2.0, so a reinstall continues where you left off. Only when an administrator has turned on Delete Inbox Data When the Module Is Uninstalled (Settings › Features) does it delete the pinb_ tables and settings, the staff permissions, the bells and this installation's storage folder with every attachment and recording. Mail stays on your mail servers. Remove the webhooks at Meta, Twilio and Telnyx, stop the voice worker and, if you no longer need them, the Google and Microsoft apps.

Troubleshooting

SymptomCheck
No Inbox in the sidebarModule active; the role has an Inbox right; not a shared-database SaaS tenant.
New mail does not arrivePerfex's cron runs every minute (Channels shows the last run); the channel is Working, not paused; Sync now shows the error if any.
“The server refused the sign-in”App password instead of the normal password; IMAP enabled at the provider; user name usually the full address.
Gmail stops every 7 daysThe Google app is External and in Testing: make it Internal (Workspace) or publish it.
Microsoft mailbox “Needs reconnecting”The client secret expired or admin consent is missing: create a new secret, save it in Email apps, Sign in again.
“redirect_uri_mismatch”The redirect URI in the Google or Microsoft app must be exactly the one shown in Email apps, with https on a live site.
Every email arrives twicePerfex's ticket piping imports the same mailbox: turn one of them off.
WhatsApp messages do not arriveCallback URL and verify token saved in Meta; the messages field subscribed; App secret correct; the site reachable over https.
“Use an approved template”The customer last wrote more than 24 hours ago: send a template.
The chat does not show on my websiteThe website's address is under Allowed websites; the script is on the page; the inbox is not switched off.
Replies stay “Sending soon”Cron; Pause syncing and sending off; the channel not paused; a scheduled time in the future.
“The file storage is not writable”Settings › Storage: make the folder writable for the web server, or set PINB_STORAGE_PATH.
Softphone says “Worker offline”The voice worker is not running: start it under systemd or Supervisor (Voice worker); for Telnyx both calls and agents.
Calls do not ring in the browserSoftphone connected and microphone allowed; site on https; the agent has Reply and access to the number; inside business hours; webhook URLs in Twilio/Telnyx exactly as shown on the number.
Telnyx: “Agent SIP connection must be internal”In Telnyx, set the agent SIP connection to internal calls only and remove its outbound voice profile; the inbox retries within a minute.
Twilio webhooks answer 403Perfex's base URL must be exactly the https address Twilio calls; behind a proxy set proxy_ips.
A call shows no transcriptCall AI on in Features and on the number; recording and consent on; the provider's transcription enabled on your Twilio/Telnyx account.
Cadence email step does not startPostal address filled in under Sending Rules; the sending account's daily cap not reached; Perfex cron running.
No Unsubscribe button in Gmail or OutlookSign your mail with DKIM at your mail provider and serve Perfex on https.

FAQ

Does it need the PHP IMAP extension?

No. The inbox has its own IMAP client and sends with PHPMailer from Perfex.

Is my mail deleted from the server?

No. The inbox only reads; nothing is deleted or marked as read on your mail server.

Can I answer from Gmail or Outlook too?

Yes. The Sent folder is read, so replies written in your mail program appear in the conversation.

Can customers read their conversations in the portal?

Not yet. Customers write by email, WhatsApp, SMS or the chat, which shows a visitor only their own chat.

Can I reply to a web form submission?

Forms only receive. Answer from a mailbox with New email, or create a lead or ticket from the submission.

Is it translated?

Yes: English, Spanish, Portuguese (Brazil), French, German, Italian, Dutch, Turkish and Russian.

Is 2.0 a paid upgrade?

No. Everyone who bought Perfex Inbox gets 2.0 free with the same purchase code.

Is the Power Dialer predictive?

No. It is a preview dialer: one call at a time per agent, started by the agent.

Can I use a SIP desk phone?

Not yet. Calls run in the browser through Twilio or Telnyx.

How do I get support?

Send the module, Perfex and PHP versions and a screenshot through SellMyCode support — never passwords or tokens.

Changelog

Current version 2.0.0 (27 Oct 2026). Release notes of every version, newest first: perfexcrm.app/inbox/changelog/.

2.0.0 — 2026-10-27

1.0.0 — 2026-10-12

The full list is in changelog.txt in the download.