zalo-oa-notifications

Manages Zalo OA group notifications via an outbox queue, token lifecycle, and retry worker.

1|Updated May 23, 2026
One-click install
npx skills add https://github.com/palfish-t-i-u/palfish-t-i-u-h-th-ng-ver-2 --skill zalo-oa-notifications-palfish-t-i-u
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: zalo-oa-notifications
Source: https://github.com/palfish-t-i-u/palfish-t-i-u-h-th-ng-ver-2/tree/main/.claude/skills/zalo-oa-notifications
Command: npx skills add https://github.com/palfish-t-i-u/palfish-t-i-u-h-th-ng-ver-2 --skill zalo-oa-notifications-palfish-t-i-u

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires httpx.

What problem does it solve? It provides operational guidance for the Zalo OA group notification pipeline that alerts sales teams about payment and course-activation events, covering token rotation, failed-message recovery, and outbox maintenance without risking production outages. ## Core Features & Use Cases - Outbox Queue Operations: Diagnose and retry dead messages in the zalo_outbox table, enforce the 🧪 [TEST] prefix rule, and understand retry backoff and fatal error codes. - Token Lifecycle Management: Follow the 6-step UAT runbook for rotating shared OAuth tokens across sandbox and production without extended downtime. - Event Type Extension: Add new notification event types by coordinating SQL migrations, Python message builders, DB triggers, and UAT cases. - Use Case: A Zalo message failed to send and shows retries >= 4 in the admin UI. Use this Skill to verify the test prefix, reset the row via the Retry endpoint, and confirm the worker delivers it on the next 30-second poll. ## Quick Start Ask the assistant to diagnose why a Zalo outbox message is stuck unsent and walk through the safe retry procedure.

Frequently Asked Questions about zalo-oa-notifications

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I retry a failed Zalo outbox message?

Use the Retry button in the ZaloOutboxTab admin UI, which resets retries to zero and lets the worker pick it up on the next 30-second poll. First verify the message contains the test prefix if it is a test row, since the retry endpoint sends the stored text unchanged.

How do I rotate Zalo OA tokens without breaking production?

Follow the 6-step UAT runbook: mint sandbox tokens, run the UAT script, then immediately mint a second pair for production. Minting any new token revokes all existing tokens for the shared OA, so plan for roughly 15 minutes of production downtime.

Why did my Zalo message fail immediately without retrying?

Zalo error codes -213, -214, and -215 are treated as fatal and set retries to the maximum of 4 instantly, skipping normal backoff. Normal errors follow exponential delays of 30, 120, 300, and 900 seconds before giving up.

Does this notification system also handle DingTalk or in-app alerts?

No. DingTalk notifications run through a separate backend module, and in-app notifications use a different table and routes. This Skill covers only the Zalo OA outbox pipeline, its worker, and its admin endpoints.

How do I add a new Zalo notification event type?

Add the value to the event_type CHECK constraint in a new migration, write matching Python and SQL message builders, register the enqueue trigger or route, and add a UAT case. Apply the migration to sandbox before production.