Telegram Ops Bot Review
A dedicated, owner-gated Telegram bot was built in the Hermes harness to identify address issues, queue unresolved cases for review, and run a guarded 5-minute address-processing job for Shopify orders.
Evidence from the run
Screenshots are shown near the top for review. Customer names, emails, full addresses, and draft message text are redacted because this Cloudflare page is accessible by link.
Unresolved Addresses after the live run. Redactions hide customer PII while leaving order numbers, issue types, products, and export timing visible.
Corrected Addresses tab is configured for future successful corrections. It is empty because this run had no validator-backed suggestions.What was built
Owner-gated Telegram bot running from /Users/mayobot/hermes-harness/hfw-ops-bot with LaunchAgent supervision.
LaunchAgent com.hfwops.auto-addresses scans the last 14 days every 300 seconds and records each run.
No-suggestion cases go to Unresolved Addresses; successful updates go to Corrected Addresses.
Bot commands
| Command | Purpose | Safety behavior |
|---|---|---|
/scan |
Refreshes the cached Shopify findings. | Read-only. |
/bad_addresses |
Shows likely address problems and any validator suggestion. | Masks email in Telegram output. |
/outreach_queue |
Shows unresolved cases and draft customer message text. | Draft only. It does not send email. |
/auto_addresses |
Runs the same 14-day address processor on demand. | Owner-only. Same guardrails as the scheduled job. |
/sync_outreach_sheet |
Adds unresolved no-suggestion cases to the review sheet. | Dedupes previously exported orders unless forced. |
/apply_address_fix |
Updates one Shopify shipping address when a safe normalized suggestion exists. | Owner-only. Blocks partially fulfilled orders and requires write_orders. |
/stale_fulfillment |
Reports fulfillment rows older than 48 hours, grouped by product. | Read-only. |
Verification summary
- LaunchAgent
com.hfwops.auto-addressesis installed and scheduled every 300 seconds. - Live 14-day run scanned 1,000 orders and found 74 bad-address candidates plus 7 outreach candidates.
- The run corrected 0 addresses because there were 0 validator-backed correction suggestions.
- The run exported 80 no-suggestion rows to the
Unresolved Addressestab. - The
Corrected Addressestab is configured and ready for successful future corrections. - Telegram eval and unit tests passed for the guarded command paths.
- Known sample order lookup works and correctly reports the current fulfillment status.
- Address edit safety was tested against a partially fulfilled order and correctly refused to update it. No customer emails were sent.
Current blockers before automatic address editing
- The current Shopify Admin token is read-only. Actual Shopify address updates need a token with
read_ordersandwrite_orders. - Smarty address validation credentials exist, but the account is returning an active-subscription-required response. Until that is resolved, the processor exports cases for review instead of guessing fixes.
- The processor is live, but it will only mutate Shopify when an order is unfulfilled, a validator gives a concrete normalized suggestion, and write scope is available.
Decision needed
Approve the guarded v1 workflow: keep the 5-minute processor active, review the unresolved-address tab, and enable live corrections after the write-capable Shopify token and Smarty subscription are active.