S SasthoTech Ops Manual

For everyone at SasthoTech

How to work in SasthoTech Ops

SasthoTech Ops is our workspace for leads, setups, support, engineering and team cash. You can use it in the browser at ops.sasthotech.com, on your phone, or straight from Telegram. Switch between Employee and Admin at the top to see the parts that apply to you, and use the search box to jump to anything.

Signing in

Open ops.sasthotech.com. Your admin creates your account with your work email.

With your password

Type your email and password, then Sign in.

With an emailed code

Tap Email me a sign-in code, enter your email, then type the 6-digit code from the email. It works once, for 10 minutes.

Forgot your password

Tap Forgot password?. Open the link in the email within 30 minutes and choose a new password (8 characters or more).

To change your password, photo, name or job title later: Settings → My account. You can also pick a light or dark look there.

Finding your way

Sidebar

Home, Team dashboard, Inbox, your Favorites and all workspace pages. On a phone, tap the menu button at the top left to open it.

Search

Press Ctrl+K (⌘+K on Mac) or tap Search to find any page, lead, ticket or task.

Inbox

Mentions, assignments, comment replies and reminders. Turn on browser notifications from the Inbox page if you want them on this device.

On your phone

Everything works at phone width. Tap a row's name or a board card to open it full screen.

Home and your day

Home shows what's yours: leads, setups, tickets and tasks assigned to you, what's due today and what's overdue. Support staff also see the engineering tasks they raised.

Every morning at 9:00 (Dhaka) the bot sends you the same summary in Telegram. Send /today any time to get it again.

Admins and sales managers also have the Team dashboard: leads by source and ad, speed to first call, conversion, stage ageing and overdue follow-ups per rep.

Pages and databases

The workspace works like Notion. Pages hold text, headings, lists, images and databases. Databases (like the Hospital CRM) have rows with properties.

Working with a database

  • Views: tabs above the table (Table, Board, Calendar, List, Gallery, Chart). Each view keeps its own filters and sort.
  • Filter, Sort, Group, Properties: the icons in the bar above the table. On a phone they show as icons only.
  • Open a row: click OPEN next to its name (desktop) or tap the name (phone). The row opens with all its properties, comments and history.
  • Edit: click any cell. Changes save as you go and everyone sees them.
  • New row: the blue New button, or + New at the bottom of a table or board column.

Comments and mentions

Type @ and a name in a comment to notify that person. They see it in their Inbox and in Telegram.

Deleted pages and rows go to Trash (bottom of the sidebar), where you can restore them.

Sales and Tele-Sales

Open Tele-Sales. Sales Queue (mine) lists your open leads, oldest follow-up first.

  1. Work the oldest lead first. Call the number on the lead.
  2. Press 📞 Log Call: choose how it went, add notes and set the next follow-up (required).
  3. Update the Status as the lead moves: In progress → Interested → Visit → Done.
  4. When the status becomes Done, the lead goes to the Setup team automatically, with the dates stamped.
You can do all of this from Telegram too. Send /call, tap the lead, tap how the call went, then tap the next follow-up. No SL numbers needed.

Call recordings

Send or forward the recording (audio or voice message) to the bot with the lead's number as the caption, e.g. SL-12, or as a reply to the lead's card. It's attached to your latest call on that lead. Without a number, the bot shows your leads: tap the right one.

The buttons on a lead (First Contact Done, Send to Visit, Visit Done, Send to Set-up…) do the same steps as in Notion, with the right dates filled in.

How a lead moves

Each team picks the lead up where the previous one finished. Dates are stamped at each step, so the dashboard can show how long each stage took.

flowchart LR
  A[New lead
Facebook / Notion] --> B[Sales
calls & follow-ups] B -->|Visit| C[Visit] C -->|Done| D[Setup
Not received] D --> E[Received → Setup started
→ On-site / training] E -->|Go-Live| F[Support
Not started] F --> G[First contact → Ongoing
→ Resolved]

Setup team

Open Setup. Setup Board groups clients by Setup Status. Incoming from Sales shows new handovers.

  1. Pick up a new client: set On-site Person to yourself and move Setup Status to Received.
  2. Move it along: Setup started → On-site / training. Use Tech dependency when engineering has to do something first.
  3. After go-live, choose Go-Live Done. Then Handed to Support passes the client to Support with a support owner assigned.

Each status change is your report: no separate update needed.

Support team

Open Support. My tickets lists yours; Open tickets shows everyone's.

  • Open tickets oldest first. Mark Issue found, or Send to tech when engineering must fix it.
  • When engineering marks it Tech done, confirm with the client, then Resolve and choose how (call, AnyDesk, on-site, all good).
  • Clients and staff can open a ticket from Telegram with /issue SL-12 what's wrong.

Engineering

Open Engineering. The board groups tasks by status. My tasks shows yours, Emergencies the urgent ones.

From Telegram: /mytasks lists your tasks; /start_task 7, /review 7 and /done 7 move task #7. Task notifications come with Start / Review / Done buttons.

The SasthoTech bot

Most daily work can be done from Telegram. Notifications arrive with buttons: a new lead card has Log call and snooze, a task has Start / Review / Done, a ticket has To tech / Resolve.

You don't need to remember SL numbers. Send a command on its own and the bot shows your leads as buttons, with 👤 Mine · ⏰ Overdue · 📋 All and Next › for more.

/followup
📋 My open leads — 23 · page 1/3 Tap a lead to set its next follow-up.
SL-1356 · Prime Seba · 🔴 12 OctSL-1360 · Milan · ⏰ 19 Oct👤 Mine⏰ Overdue📋 All
Next follow-up?
TomorrowIn 2 daysIn 3 daysNext week

All bot commands

Send these in a private chat with the bot (most also work in the staff group).

SendWhat it does
/helpWhat the bot can do for you.
/todayWhat's due today and overdue (also sent at 9:00).
/leadsYour open leads as buttons. /leads all, /leads overdue for others.
/lead popularFind a lead by name, hospital or phone and open its card.
/callLog a call: pick the lead, how it went, the next follow-up. /call SL-12 notes keeps your notes.
/statusChange a lead's status with buttons. Quick way: /status SL-12 visit.
/followupSet the next follow-up. Quick way: /followup SL-12 tomorrow.
/followupsYour overdue follow-ups.
/myticketsYour open support tickets.
/issue SL-12 textOpen a support ticket for a client.
/mytasksYour open engineering tasks.
/workspaceOpen the full workspace inside Telegram.
/balanceCash you're holding (Hisab). /history for your last entries.
/commandsCommands that add records to databases (for example /expense).
/approvalsHisab entries waiting for your approval, sent to you privately.
/hisabEveryone's cash as buttons: tap a person for their balance and history. /balance karim by name, /report for the team.

The workspace inside Telegram

Send /workspace (or tap the menu button next to the message box) and the whole app opens inside Telegram, already signed in with your linked account. Use Telegram's back arrow to go back.

It works in the Telegram apps for Android, iPhone and desktop. In Telegram Web (in a browser) use ops.sasthotech.com instead.

If it shows "Still loading — the connection looks slow…", wait a little or check your internet. If it shows an error, take a screenshot and send it to your admin.

Hisab: writing your expenses

Hisab is our team cash book. Just write in the Hisab Telegram group, or privately to the bot, the way you'd tell a person. English, Banglish and Bangla all work. Always include the amount: if you forget, the bot asks "How much?".

You writeThe bot records
Bus 800, lunch 200, rickshaw 60Three expenses, each checked against the price limits.
Ibn Sina Setup
bus fare - 800
Starts the event "Ibn Sina Setup"; your next costs join it until /endevent.
A receipt photo with a captionThe amounts from the photo, with the photo kept for the admin.
Collection from Ibn Sina Hospital 5000 on 11 OctA collection (adds to the cash you hold).
Transferred 3000 to Sasthotech · Sent 5000 to SasthoTechMoney sent to the company; counts once the admin checks it arrived.
cash from amimoy 5000Cash from a teammate; Amimoy confirms with a button.
office bazar 260An office expense (goes to HR / Office).

A list of several days

Write the date on its own line, then the costs under it. Parts like 60+350+40 are added up. A line without numbers (a place) applies to the lines below it.

Expenses 18.06.26 Pulse jatrabari Metro card-200 Transport- 60+350+40 Lunch-220 19.06.26 Rice- 130

Commands in the group: /balance, /history, /undo (cancel your last message), /event, /endevent.

Round trips, several people, nights

Price limits are per trip, per person, per night and per room. Say so in the message and the limit is multiplied:

  • bus 1600 jawa-asha (or two way, round trip, return, up-down, যাওয়া-আসা)
  • lunch 600 3 jon (or for 3 people, x3)
  • hotel 4000 2 nights (or 2 din, 2 rat, 2 rooms)

If you forget, the bot asks with buttons under its reply: ↔️ round trip, 👥 2 people, 🌙 2 nights. Tap one. If it now fits the limit, it's approved straight away. You can also reply to the bot's message in your own words ("amra 2 jon chilam, 2 rooms") and it checks again, or passes your note to the admin.

Reading the bot's reply

👤 Rafid · Setup ✓ Collection: ৳2,000 (15 Oct) (Ibn Sina Hospital) ────────── 🧾 Expense: ৳1,060 (15 Oct) (Ibn Sina Hospital) Expense list: ✓ Bus — ৳800 △ Lunch — ৳200 ↳ ⚠️ Above your limit for Lunch / dinner (৳200) ✓ Rickshaw — ৳60 Waiting for admin: ৳200 💰 Cash with you: ৳16,390
  • ✓ counted. △ waiting for the admin; the line under it says why.
  • Cash with you is the money you're holding now (given to you + collected − spent − sent to the company).
  • Things that wait for approval: above a price limit, dated more than 7 days ago, the same claim made twice, a second claim for the same hospital trip, and transfers to the company.

Giving and taking money

Hisab admins write plain sentences in the group:

WriteResult
Deposit 1000 @rafid · 10000 deposited @rahim · 5000 dilam (as a reply)💰 Adds to that person's cash.
Deduct 1000 @rafid · minus · cut · took back · 1000 kete nao (reply) · ferot · -1000 @rafid➖ Takes it off their cash.
/adjust @user -300 reason · /void 42A correction, or cancel entry #42.
/report · /company · /exportTeam summary, company account, CSV of all entries.

Anything else an admin writes ("Collection 12,000", a bus fare) is recorded as the admin's own entry, like anyone's. A person without a Telegram username can be named by replying to one of their messages.

To see anyone's cash at any time, send /hisab to the bot privately and tap a person; then History or Team report.

Approvals

Every message with waiting entries becomes a task for that team's admins.

  • You get it privately in Telegram with ✅ Approve and ❌ Reject. One approval is enough; the group message is stamped too.
  • /approvals sends you everything still waiting for you.
  • In the app: Hisab → Waiting for you. Team admins who aren't managers see it on their My cash page.
  • You can't approve your own entry while another admin exists (you can reject it, which cancels it).

Hisab settings

Teams

Four teams: Sales (Demo), Setup, HR / Office, Collections. Set each person's team in Hisab → Team. An entry goes to the person's team unless its words say otherwise (office costs → HR, collections → Collections).

Team admins

Hisab → Settings & rules → Team admins: tick who approves each team, e.g. Mizan for Collections. App admins can always approve. A team with nobody ticked falls back to admins and sales managers.

Who reads the messages

  • Reader: the main AI. Claude (paid, most accurate, a few dollars a month for our size) or Google Gemini (free, slower at busy times).
  • Backup reader: takes over when the main one fails or is busy (e.g. Gemini behind Claude, or Groq).
  • Clear written lists are read by fixed rules, with no AI. If both AIs fail, the price limits decide and the reply says why.

Rules

  • Price limits: words and the maximum per item (lunch 200, bus 1500…). Above it waits for approval.
  • Expenses dated more than … days ago need approval (default 7).
  • Low balance and maximum to hold: alerts and the weekly "send the rest" check.

People and roles

Settings → Members: add people, set their role, deactivate those who leave (they can't sign in; their history stays).

RoleCan
AdminEverything, including server settings, integrations and approving any Hisab entry.
Sales managerTeam dashboard, Hisab, automations, integrations.
Sales · Setup · Support · EngineerTheir work and every page; changes records.
ViewerRead only.

Telegram bot setup

  1. Integrations → Telegram bot: paste the bot token from @BotFather and set the webhook.
  2. Workspace in Telegram → Set menu button so everyone sees the Workspace button.
  3. Add the bot to the staff group and send /bind staff; add it to the Hisab group and send /bind hisab.
  4. Make the bot an admin of the Hisab group. Otherwise Telegram only shows it /commands and expenses get no reply. /help in the group warns you if this is the problem.

Notion sync

During the trial the Notion CRM stays the main copy of the leads; this app follows it both ways.

  • Every 2 minutes, leads added or edited in Notion (including new Facebook leads) come into the app.
  • Changes made in the app or Telegram (status, follow-up, assignee, calls) go to the same Notion page straight away; Telegram calls become Call Log Entries.
  • If both change at once, Notion wins. Notion's own automations keep stamping dates.
  1. In Notion, create an internal integration and copy its secret. Share the Hospital CRM, Pharmacy CRM and Call Log Entries databases with it (••• → Connections).
  2. Integrations → Notion sync: paste the secret, check the three database ids, Save, then Turn on.
  3. Watch Last from Notion / Last to Notion / Problems. Sync now runs it at once.
People are matched by email: each person's Notion email and app email should be the same. While the sync is on, the app doesn't fetch Facebook leads itself.

Email

Needed for "Forgot password?" and sign-in codes. Settings → Server settings → Email (SMTP):

  • Gmail / Google Workspace: server smtp.gmail.com, port 587, your address, and an app password (Google account → Security → App passwords).
  • Fill From, e.g. SasthoTech Ops <ops@sasthotech.com>, save, then Send test email.

Automations

Automations lists the rules: When a row is added, a property changes or a button is pressed, do something (set a property, stamp a date, assign round-robin, notify people, send a webhook). Turn rules on or off with the checkbox; each database also has a ⚡ button in its view bar.

With Notion sync on, edits that come from Notion only run the notification parts of rules.

Server and health

  • Settings → Server settings: file storage (Cloudflare R2), public address, email, website form key, docs link. Secrets are stored encrypted.
  • Integrations: incoming events and outgoing messages with their state; Retry on anything that failed.
  • New versions are deployed from Coolify (Deploy); the database updates itself on start.

Questions and fixes

The bot doesn't reply to my expenses in the Hisab group

The bot must be an admin of the group, and the group must be bound with /bind hisab. Ask your admin. Commands like /balance work either way.

The Workspace in Telegram stays blank or says "Still loading"

Usually a slow connection: wait a few seconds. If an error appears, screenshot it for your admin. Telegram Web isn't supported; use the phone or desktop app, or ops.sasthotech.com.

"Your role is Viewer"

Viewers can read but not change records. Ask an admin to change your role in Settings → Members.

I made a mistake in Hisab

Send /undo to cancel your last message, or reply to the bot's message to explain. An admin can correct it with /adjust or /void.

I didn't get the reset email or sign-in code

Check spam. Codes last 10 minutes and links 30 minutes; ask for a new one. If none arrive, email may not be set up yet: ask an admin.

"The AI reader didn't answer — …"

The reason follows the dash (bad key, quota, model retired). Fix it in Hisab → Settings & rules; the message was still recorded with the price limits.

A lead changed in the app didn't change in Notion

Check Integrations → Notion sync → Problems. Common causes: the database isn't shared with the integration, or the option name doesn't exist in Notion.