Output channels
Every scheduled task delivers its result somewhere. QRY has three channels: conversation, email, and Telegram. Pick whichever matches how you'll consume the output.
Conversation
The result is appended as a new turn in the source conversation (for scheduled conversations) or as a new conversation (for scheduled notebooks and jobs).
Use conversation when:
- You'll come back to QRY to review the result and probably ask follow-up questions.
- The result includes interactive output — charts you'll hover, tables you'll sort, drill-down through processing details.
- You want a permanent, browseable history of every run, with the ability to rewind.
Don't use conversation when:
- You won't see the result unless someone pushes it to you (e.g. you don't open QRY weekly).
- The result needs to reach people who don't have QRY accounts.
What it looks like
Open the source conversation and the latest scheduled run is the most recent turn, with a small clock badge showing it was triggered by a schedule rather than typed by you. Older runs are in the conversation history below.
For scheduled notebooks, each run produces a fresh, read-only output document linked from the notebook's Run history.
Email
The result is rendered as an HTML email and sent to one or more recipients.
Use email when:
- The recipient won't open QRY but does check email.
- You're sending a regular report to stakeholders outside the data team.
- You want a paper trail in the recipient's mailbox.
Don't use email when:
- The result is interactive (charts, large tables) — email rendering reduces interactivity to static images.
- The result is sensitive — email is plain-text-readable in transit logs and inbox archives. For PII, prefer conversation + a public share link the recipient retrieves over HTTPS.
What it looks like
The email contains:
- A subject like QRY: <task name> – <run timestamp>.
- The text of the answer (rendered Markdown).
- Charts as inline PNGs (interactivity lost).
- Tables as HTML tables (limited rendering by mail client).
- A link back to the conversation in QRY for full-fidelity review.
Recipients
You can list multiple comma-separated recipients. The same task always sends to the same list — to send to different people on different days, create separate scheduled tasks.
Recipients don't need QRY accounts. They just need a working email address.
Telegram
The result is delivered to a Telegram chat as one or more bot messages. Available when the task is created from the Telegram bot itself — the chat to deliver to is auto-resolved from the active session, you don't need to copy any chat ID by hand.
Use Telegram when:
- You'd rather get the answer on your phone than open QRY or your inbox.
- You want push-style alerts (especially with conditional alerts — fire only when the condition is met, with a cooldown).
- The result is short or summarisable — a paragraph, a number, a small list of bullets.
Don't use Telegram when:
- The result is dense (long tables, many charts). Telegram caps each message at 4096 characters; the bot paginates, but multi-message reports get unwieldy fast.
- You need an audit trail with multiple recipients. Telegram delivers to one chat — for distribution lists, use email or a workspace conversation.
- The recipient isn't logged in to the bot. Each delivery target is a single QRY user authenticated via a
qry_msg_*token.
What it looks like
A regular bot message — plain text or light Markdown (single *bold*, _italic_, `inline code`). Charts arrive as inline PNGs from matplotlib/seaborn. Excel/PDF attachments work when the prompt asks for them explicitly.
Configuring it
Just ask the bot. From within Telegram:
You: Schedule a one-time task in 30 minutes that counts
yesterday's signups and sends me the result here.
The bot creates the task with output_type=telegram and the chat ID populated for you. See Telegram Bot — Scheduled deliveries for the full reference, including how to set up conditional alerts.
Choosing in the dialog
When you create or edit a scheduled task (Creating a scheduled task), the dialog asks for the channel. You can change it later by editing the task in the Scheduled Tasks management view.
Switching channels for an existing task takes effect on the next run; runs already executed don't get re-delivered through the new channel.
Common issues
Email not arriving (and not in spam). Your tenant's SMTP isn't configured or the sending address is rejected by the recipient's domain. Ask an admin to check Admin > System Settings > Email.
Email arrived but charts are missing. Some corporate mail clients block inline images. The email also contains the link back to the QRY conversation — open that for the interactive version.
Conversation channel — but I don't see the new turn. Refresh. The streaming worker writes the turn server-side; the conversation in your tab needs to re-fetch.
Sensitive data ended up in someone's inbox. Switch the task's channel to conversation and revoke any forwarded email links. For external recipients, prefer scheduling against a public-shared dashboard link instead.
See also
- Creating a scheduled task — the canonical creation walkthrough.
- Managing your quotas — what your daily quota covers.
- Sharing a conversation — public links as an alternative to email.
- Telegram bot — the third delivery channel and how to set up conditional alerts.