🔔
Turn on phone alerts for your queueYou'll be told the moment a sale is waiting for you — even when the app is closed.
Application Details
Scan Emirates ID (optional — auto-fill)
The scan starts by itself as soon as a side is uploaded (a photo or a PDF, up to 5 MB), and runs again when the other side is added. Scanning uses AI to read the details straight off the photo(s) — still double-check the filled fields before submitting.
Secondary documents (optional)

Passport, visa, trade licence or any other document du asks for besides the Emirates ID — up to two. Press Upload and pick the document from your phone (PDF, Word or Excel, up to 5 MB) or take a photo; they are kept with the sale for the verifier and processor.

Customer Details
Line & Plan Details
971
971
Agent Details
Serial Number
—
Sale recorded. Note this number for follow-up.
My Sales

Sign in with your Google account.

Verifier

Sign in with your Google account. Only registered Verifier or Processor accounts can access this.

📋 Activation Trackers
IT Support — my tickets

Laptop, phone, SIM, printer, CRM access, e-mail — raise a ticket and IT will pick it up. You are told of every reply; when IT marks it resolved, confirm it here.

Fiber Processor — FNE orders

Every fibre sale comes here straight from the agent. RFS check → (NRFS: ISP request, wait) → customer verification call (GAID + slot) → Work Order → slot booking → installation. The sale is Activated only once installed. Tap a tile to see those sales.

Express Processor

Your work first: the tiles show what still needs attention (tap one to open those sales). Below, any date range of activated Express sales — including ones activated through the Telesales flow via a TELESALES dealer app.

Month-end: the du agent and SM / TL reports for Express, on screen or as Excel.

AgentSalesMRC (AED)
Team LeaderSalesMRC (AED)
Sales ManagerSalesMRC (AED)
LocationSalesMRC (AED)
Leads

Telesales prospect pipeline — track, assign, and convert leads into sales.

Dialling activity straight from the phone system for one day — every outbound call on your team's extensions, grouped per agent. Inbound and internal calls are not counted; flagged padding/test numbers are excluded.

AgentTeamExt.CallsAnsweredNo AnswerOtherAnswer %Talk Time

Spread leads from the Unassigned Pool across a team in one go. Preview first — nothing moves until you confirm.

Check a number before importing or calling — is it already a lead, an existing customer, or a number the floor has been dialling?

By source
By campaign
Import batches

One row per upload. "Kept" is what actually entered the CRM after duplicate and invalid-number checks; the status columns show what became of those leads since.

Pick an agent to see the leads they are holding. Tick any and move them to another agent — a moved lead leaves the first agent's list straight away.

By Team
Team LeaderTotal LeadsConvertedConversion Rate
By Source
SourceTotal LeadsConvertedConversion Rate

Columns: Customer Name, Phone, Alt Phone, Email, Source, Campaign, Notes.

The list name is stamped on every lead in this upload, so you can find them together later and see how each list performs under Sources. Leave it blank to use whatever the file's own Source and Campaign columns say. The lead type must be chosen before importing — it decides which of du's calling remarks the agents see, and fibre has its own sheet.

Give repeats to a second agent: normally a number du re-sends that is already a live lead here stays with the agent who has it. Tick this and a second lead is created as well, so a different agent gets a go at it. Both agents call the same customer, and only one of them can ever save a sale — the same number cannot be sold twice — so the second copy buys another attempt, not another sale. Numbers that have already sold are never duplicated.

Agent activity

Live status is polled from your own browser every ~15s while this tab is open (the phone system is LAN-only, so it can't be computed server-side). Call counts are pulled from the phone system's own records — "🔄 Sync Now" pulls the latest (only works from a browser on the office network); it also happens automatically whenever this tab is opened.

AgentExt.Live statusAnsweredNo AnsweredBusyFailedVoicemailTotal Ring DurationTotal Talk Duration
🔥 Untouched leads (24h+, no contact yet)
CustomerPhoneAgentAssigned
⏱ Overdue callbacks
CustomerPhoneAgentWas due
♻ Recycled leads — reassign

Leads that sat idle for 7+ days (no call, note, or status change, and no upcoming callback) are automatically pulled back from their agent every morning. Pick a new agent to put each one back in play — the full call history stays attached. A lead recycled several times is probably a bad number, not a bad agent.

CustomerPhoneWas withRecycledTimesReassign to
📞 Call Log

Pulled directly from the phone system's own call records — covers every call on your team's extensions, whether or not it went through this CRM. Type a phone number to see who in your team called it, how many times, and for how long.

TimeAgentCRM LeadPhoneDurationOutcome

Numbers your team has been calling that aren't leads yet, found automatically in the phone system's records (last 60 days; called at least twice or 30+ seconds of talk). Add turns one into a lead — assigned to whoever called it most, with its full call history attached. Dismiss hides it for your team permanently (wrong numbers, suppliers, personal calls).

PhoneTimes CalledAnsweredTotal TalkLast CallMost Calls ByCustomer Name (optional)
Team Leader

Sign in with your Google account. Only registered Team Leader accounts can access this.

Sales Manager

Sign in with your Google account. Only registered Sales Manager accounts can access this.

Sales Head

Sign in with your Google account. Only registered Sales Head accounts can access this.

Management

Sign in with your Google account. Only registered Management accounts can access this.

Ashtel — Etisalat Business Sales

Sales Operations

Here is today's Ashtel pipeline and sales overview.

Monthly overview

Month over month: active agents, new leads, proposals and orders.

Target this month
To-do
Meetings ahead
Needs attention
Follow-ups today
Latest activity
Agents this month
Ashtel staff
Add someone and they are on attendance and, with an extension, on the call report. Remove someone and they come off both.
New proposals start from a lead: open the lead and press + Proposal.
The pipeline tiles are as of now; created / won / lost count what happened in the period.

Follow-ups on leads: overdue first, then today, then the coming week. You get a push when one comes due, and an overdue list every morning.

All In Progress QC Returned Closed Cancelled

A submission enters the tracker as IN PROGRESS and gets an ATS tracker number. Processing details (order / request / account numbers) are added later by the processing side.

Choose the sale type first — the form shows the fields that type needs.

Ashtel's outbound calls for one day, straight from the phone system, per agent and split into the Dubai and TSPL offices — click an office card to see only it. Inbound and internal calls are not counted. The same report as Management → Call Report.

AgentOfficeExt.CallsAnsweredNo AnswerOtherAnswer %Talk Time

Your attendance from the office fingerprint machine: today, this year's totals, late days and leave requests.

HR — People, Attendance & Payroll
Live from the attendance system · all departments
🧭 Team Leaders — attendance & counter visits

Each team leader's own check-in and check-out, and the counters they called at in between — a counter visit is logged by the team leader from the attendance app while on shift (time and GPS, matched to the nearest counter). Nobody is tracked between taps. The department buttons above pick which department's team leaders are shown.

Candidates from the first interview to their first day: the HR Assistant records interviews and collects the documents; HR checks them, runs the visa and confirms the joining — which creates the HR record and the attendance entry.

The company master registry — every employee across all group branches, whether or not they punch an attendance system. The search box above works here too.

Excel columns: CODE and any of VISA EXPIRY, EMIRATES ID EXPIRY, PASSPORT EXPIRY, LABOUR CARD EXPIRY (also VISA TYPE, VISA NUMBER). Dates as 31/12/2027. An empty cell changes nothing, and nothing is saved until you press Apply.

IDNameBranchVisa BranchVisa & documentsDesignationNationality JoinedAttendanceEquipment
⏰ Late Today
✕ Not Checked In
Summary Day by day
EmployeeNameDeptTeam Working Days PresentLate LeaveVacationAbsent

Requests submitted from the attendance app, and leave you enter here. An approved day never counts as absent — in the register or in payroll.

Add leave for a staff member

One day: leave "To" empty. Sundays, public holidays and the person's rest day inside the period are not counted. Saved as approved.

Leave DateNameReasonStatusSubmitted

Days inside a vacation period are never counted absent — not in the register, staff profiles or payroll. A vacation stays open until you mark the person rejoined; the rejoin day itself counts as a normal working day.

shows vacations overlapping the range
🏖 Currently On Vacation
Recent Vacations (closed)

Public holidays are never counted as working days — in the register, staff profiles or payroll. Add or remove dates here. The Islamic holidays shift each year, so confirm them against the official UAE announcement.

DateDayHoliday

Each person's monthly salary (HR's "ACTUAL SALARY"). Payroll starts every month from this figure; changing it on the Payroll sheet updates it here too.

Columns needed: CODE and ACTUAL SALARY (HR's own sheet works as it is). Nothing is saved until you press Apply.
CodeNameBranchDeptActual salary (AED)

HR's payroll sheet. Salary amount = actual salary ÷ days in the month × days. Days come from attendance (the month minus absent days) and can be overwritten; the typed columns are yours. Totals update as you type; each line saves on its own with Save, or all at once.

CodeStaff nameAct. branchActual salaryDaysSalary amount CommissionOTPending comm.Tel. allowanceVacation settl.Total salary Loan ded.Prepaid SIMMobile usageTotal loanNet payableRemarks
Admin Panel
Counter Locations
IT Tickets

Tickets raised from the Support tab (and "Problem" on My equipment). Claim one, reply, set the priority, or resolve it — the staff member confirms the fix, else it closes by itself after 3 days. A new ticket not picked up in 4 hours (Urgent: 1 hour) is chased hourly.

Assets — IT equipment

SIMs, phones, laptops, tablets, routers and the rest: who has what, since when, and every hand-over. Tiles filter the list.

Needs attention
0 selected

Express: Back Office enters the du figure on the department scope and the internal targets per Sales Manager, Team Leader and agent. Telesales: the Telesales Sales Manager enters the du figure and each agent's target from their own dashboard — Team Leader and SM targets are the automatic sum of their agents'. Everyone else sees their own slice read-only; only Management sees the du figure. The roll-up line on the hero card shows whether the targets handed out add up to the level above.

Plans (MRC & Category)

MRC auto-fills on the sale form whenever this plan is selected. Category determines which report bucket it counts toward: Prepaid (NEW/P2P/MNP), Postpaid (further split by Oasis/Non-Oasis), or Home Wireless.

Commission Rules

Per activated sale: flat amount + % of the sale's MRC, by plan category. Feeds the Management → Commission report. Changing a rate recomputes ALL months, past ones included — agree rates with management before entering them.

Agent Roster
All Express Telesales Ashtel InfoX Digtel
Staff Roles & Access

Org chart: Agent → Team Leader → Sales Manager → Sales Head → Management. Names here must exactly match what's used on sales / what Team Leaders and Sales Managers are called.

Access Review

Every privileged account, grouped by person — roles held, department scope, last sign-in activity, dormant accounts, and role combinations worth a second look. Refreshes each time you open this tab.

Agent Account Links

Which Gmail account each agent linked to their Employee ID. Delete a row to let an agent re-link (e.g. if they used the wrong ID, or someone left).

How much is waiting to be verified, how long it waits, and who is clearing it. Verification sits between the agent submitting a sale and the line going live, so a backlog here holds up everything after it.

⏱ Where sales are waiting right now

Live queue depth per stage. "Over 48h" is the count that has been sitting there more than two days.

StageWaitingAvg waitLongestOver 48h
⚡ How long each step is taking

Averages over the last 60 days, for sales that actually completed each step.

StepSales measuredAverage
🔥 Oldest stuck sales

The 15 longest-waiting sales not yet activated — chase these first.

SerialCustomerAgentTeam LeaderStatusWaiting
Notification Delivery

Every email/push a sale action triggers goes through a queue (send-notifications.php, run on a schedule) rather than sending immediately — this is what's actually happening to it.

Abandoned — gave up after repeated failures

These stopped retrying. Something's actually wrong (a bad address, a persistent problem) — fix the underlying issue, then Retry to put one back in the normal queue.

Currently struggling — still retrying

Failed at least once but still on its own retry schedule — not urgent yet, just visible.

Bulk Import

Paste rows copied straight from a spreadsheet (tab-separated), or upload an Excel file below. Either way, review what lands in the box before clicking Import — nothing is saved until then.

Columns: Location Name, Dealer ID, Emirate

Call Padding Audit

Numbers dialled 10+ times by one agent with near-identical talk durations — the statistical fingerprint of calling a recording to inflate answered-call and talk-time figures. A spread under a few seconds across many calls does not happen in human conversation. Flag removes a number from Suggested Leads and from every call statistic, for all teams, retroactively.

Flagged Numbers

Excluded everywhere. Add a number manually if you already know it is a padding or service line.

Renewals — every team
Phone calls by month
AI billing calls
Automation rules
Staff logins — Ashtel, InfoX and managers

Ashtel agents sign in with their company e-mail and a password at crm.easystoretelecom.com/ashtel (Google is refused for them); InfoX agents at crm.easystoretelecom.com/infox (Google keeps working for them); managers at crm.easystoretelecom.com/login. The sign-in name is the company e-mail (the Employee ID works too); set it per agent or upload a sheet with Employee ID + Company e-mail columns. A new or reset login gets a temporary password shown once here; the agent must change it at first sign-in. Ten wrong tries lock an ID for 15 minutes.

System Administration

Operational health of the app itself — deployment, database, cron jobs, backups, and configuration. Not sales data. Refreshes each time you open this tab.

Cron Job Health

reminders.php (daily), send-notifications.php (every 5 min), and backup.php (daily) each record their own run here — flagged "stale" if one hasn't reported in longer than expected.

Configuration
Database Migrations
Claude connector

Lets Claude Desktop answer questions over the CRM — queues, sales by agent and period, the WhatsApp inbox, attendance totals, tickets and leads. Read-only; it never returns customer names, numbers, Emirates IDs, documents, message text or salaries. A token is issued to one Admin account, shown once, and can be revoked here; every question is logged below.

Questions asked (last 40)
Rate-Limit Activity (last 24h)

The only automated abuse signal this app tracks today — repeated hits from the same bucket (an email or IP-scoped key) are worth a look, not necessarily an incident on their own.