Bot type
Stop chasing the fourth document by email
A Telegram document collection bot walks a client through a checklist, accepts photos and files in the chat, checks each one is legible and the right type, and reminds them about what is outstanding. It removes the email chase. It cannot verify that a document is genuine.
Document collection bots: price, timeline and limits
- Fixed price
- $4,200 USD
- Delivery
- 18 calendar days from kickoff
- File transfer
- Download up to 20 MB, send up to 50 MB
- Image fidelity
- Photos are compressed; documents are preserved byte-for-byte
- File persistence
- File ids are stable, the files are not guaranteed to persist
- Authenticity
- A bot cannot verify a document is genuine or unaltered
As of 2025-10-01, Telegram Bot API 13.4
The problem this solves
Onboarding in professional services — company formation, visa processing, banking, insurance, conveyancing — is mostly a document collection problem wearing a legal costume. The advice takes an hour. Getting the passport copy, the Emirates ID, the trade licence, the tenancy contract and the signed engagement letter takes three weeks, and it takes three weeks because it is conducted by email.
Email is a terrible medium for a checklist. There is no shared state, so both sides maintain a private mental list that diverges. Attachments arrive detached from context, named IMG_4471. Nobody knows whether the last message was a reminder or an answer to one. And the client experiences the whole thing as being nagged, which is exactly what it is.
A chat with a persistent checklist changes the shape of the interaction. The client can see what is outstanding without asking, each upload attaches to the item it satisfies, and the reminders come from a bot rather than from a person the client would rather not disappoint. Firms that move this to a structured flow typically find the bottleneck was never client willingness — it was that nobody could remember what was still missing.
How the build runs
A matter is opened and the checklist is generated
Your system, or a staff command, creates the matter with the document set required for that service. The client gets a link that opens the bot already scoped to their matter.
deep-linkThe client sees what is outstanding, always
A single command shows the full list with each item ticked or open. Removing the ambiguity about what remains is most of the reason these flows finish faster than email.
commandsUploads attach to the item they satisfy
The client taps the item then sends the photo, so the file arrives already labelled. Reconstructing which attachment was which is the work that makes email collection expensive at the receiving end.
file-transferEach upload is checked before it is accepted
Is it an image or a PDF, is it large enough to be legible, does an expiry date appear where one is expected. Rejecting a blurred passport page immediately saves a round trip that would otherwise take two days.
file-transferReminders run until the item arrives, then stop
Per-item rather than per-matter, so a client with one outstanding document is not reminded about the four they already sent. That distinction is why these reminders are tolerated and blanket ones are muted.
broadcastCompleted matters hand off with everything attached
Files land in your document management system or a structured folder, named by matter and item rather than by camera roll. The person picking the matter up next does not re-derive anything.
webhook
What Telegram will and will not let you do
A bot can download files up to 20 MB and send files up to 50 MB.
Phone photos are comfortably inside the download limit. A large scanned PDF from a client's office scanner can exceed it, and the bot tells them so rather than failing silently — which is the difference between a small annoyance and a lost week.
Telegram compresses images sent as photos, but preserves files sent as documents.
A compressed passport scan can be unreadable at the point it matters. The bot asks for documents rather than photos where fidelity is legally relevant, and explains why.
File identifiers issued by Telegram are stable but the files themselves are not guaranteed to persist indefinitely.
Anything you need to keep is copied to your own storage on receipt. Treating Telegram as a document archive is a compliance problem waiting for an audit.
A bot cannot verify that a document is authentic or unaltered.
It checks type, legibility and presence. Verification remains a human or a specialist KYC provider's job, and any process built on the assumption the bot verified something is built wrongly.
Telegram provides no way to force-delete a file from a user's own chat history.
The client retains their copy indefinitely. Retention policy applies to your storage, and your privacy notice has to describe the situation as it actually is.
When not to build this
- Your documents require wet signatures or notarisation. The bot will collect a photo of a signed page, which is not the same thing, and building the process around it will create a gap at the worst moment.
- You are regulated in a way that mandates a specific identity verification vendor. Collect through that vendor; a general document bot in front of it adds a step and a second copy.
- Your matters need fewer than three documents. The checklist overhead exceeds the chase it removes.
- Nobody will maintain the checklist templates. A document set that has drifted from what the authority actually requires produces confidently collected, useless files.
What it runs on
| Component | Version | Why |
|---|---|---|
| grammY | 1.45 | Bot framework, with file handling and per-matter conversation state. |
| Cloudflare Workers | current | Runtime, with cron-driven per-item reminders. |
| Cloudflare R2 | current | Document storage, with lifecycle rules matching your retention policy. |
| Cloudflare D1 | current | Matters, checklists, item state and the reminder schedule. |
| TypeScript | 5.9 | Strict mode, with checklist templates typed so a missing item name fails the build. |
Questions people ask before committing
Can it tell whether a passport copy is genuine?
No, and no general document bot can. It checks that the file is the right type, is legible, and appears to contain what was asked for. Authenticity is a human judgement or a specialist KYC provider's job, and designing a process that assumes otherwise is the real risk.
Where do the files actually end up?
In your storage — Google Drive, SharePoint, Dropbox or R2 — named by matter and checklist item. They are copied out of Telegram on receipt rather than left there, because Telegram is not a document archive and treating it as one fails an audit.
How often does it remind people?
On a cadence you set, per outstanding item, and it stops the moment the item arrives. Per-item rather than per-matter is the detail that keeps reminders tolerable — nobody is chased about documents they already sent.
What if a client sends a photo too blurry to read?
It is rejected immediately with an explanation, while the client still has the document in front of them. Catching it at that moment rather than three days later during review is where most of the time saving comes from.
Can staff see the status of every open matter?
Yes, with a view of what each one is waiting on and how long it has been waiting. That list is usually the first time a firm can see where onboarding actually stalls, which is often not where they assumed.
How does this interact with data protection obligations?
Files are copied to your storage under your retention policy, and the client keeps their own copy in their chat history, which cannot be remotely deleted. Your privacy notice has to state that plainly rather than implying a control you do not have.