Sign in with your Google account.
Sign in with your Google account. Only registered Verifier or Processor accounts can access this.
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.
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.
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.
| Agent | Sales | MRC (AED) |
|---|
| Team Leader | Sales | MRC (AED) |
|---|
| Sales Manager | Sales | MRC (AED) |
|---|
| Location | Sales | MRC (AED) |
|---|
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.
| Agent | Team | Ext. | Calls | Answered | No Answer | Other | Answer % | 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?
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.
| Team Leader | Total Leads | Converted | Conversion Rate |
|---|
| Source | Total Leads | Converted | Conversion 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.
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.
| Agent | Ext. | Live status | Answered | No Answered | Busy | Failed | Voicemail | Total Ring Duration | Total Talk Duration |
|---|
| Customer | Phone | Agent | Assigned |
|---|
| Customer | Phone | Agent | Was due |
|---|
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.
| Customer | Phone | Was with | Recycled | Times | Reassign to |
|---|
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.
| Time | Agent | CRM Lead | Phone | Duration | Outcome |
|---|
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).
| Phone | Times Called | Answered | Total Talk | Last Call | Most Calls By | Customer Name (optional) |
|---|
Sign in with your Google account. Only registered Team Leader accounts can access this.
Sign in with your Google account. Only registered Sales Manager accounts can access this.
Sign in with your Google account. Only registered Sales Head accounts can access this.
Sign in with your Google account. Only registered Management accounts can access this.
Here is today's Ashtel pipeline and sales overview.
Month over month: active agents, new leads, proposals and orders.
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.
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.
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.
| Agent | Office | Ext. | Calls | Answered | No Answer | Other | Answer % | Talk Time |
|---|
Your attendance from the office fingerprint machine: today, this year's totals, late days and leave requests.
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.
| ID | Name | Branch | Visa Branch | Visa & documents | Designation | Nationality | Joined | Attendance | Equipment |
|---|
| Employee | Name | Dept | Team | Working Days | Present | Late | Leave | Vacation | Absent |
|---|
Requests submitted from the attendance app, and leave you enter here. An approved day never counts as absent — in the register or in payroll.
One day: leave "To" empty. Sundays, public holidays and the person's rest day inside the period are not counted. Saved as approved.
| Leave Date | Name | Reason | Status | Submitted |
|---|
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.
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.
| Date | Day | Holiday |
|---|
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.
| Code | Name | Branch | Dept | Actual 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.
| Code | Staff name | Act. branch | Actual salary | Days | Salary amount | Commission | OT | Pending comm. | Tel. allowance | Vacation settl. | Total salary | Loan ded. | Prepaid SIM | Mobile usage | Total loan | Net payable | Remarks |
|---|
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.
SIMs, phones, laptops, tablets, routers and the rest: who has what, since when, and every hand-over. Tiles filter the list.
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.
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.
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.
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.
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.
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.
Live queue depth per stage. "Over 48h" is the count that has been sitting there more than two days.
| Stage | Waiting | Avg wait | Longest | Over 48h |
|---|
Averages over the last 60 days, for sales that actually completed each step.
| Step | Sales measured | Average |
|---|
The 15 longest-waiting sales not yet activated — chase these first.
| Serial | Customer | Agent | Team Leader | Status | Waiting |
|---|
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.
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.
Failed at least once but still on its own retry schedule — not urgent yet, just visible.
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
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.
Excluded everywhere. Add a number manually if you already know it is a padding or service line.
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.
Operational health of the app itself — deployment, database, cron jobs, backups, and configuration. Not sales data. Refreshes each time you open this tab.
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.
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.
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.