dingtalk-notifications

Manages DingTalk group-robot notifications via OAuth2, outbox worker, and admin UI.

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 dingtalk-notifications-palfish-t-i-u
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: dingtalk-notifications
Source: https://github.com/palfish-t-i-u/palfish-t-i-u-h-th-ng-ver-2/tree/main/.claude/skills/dingtalk-notifications
Command: npx skills add https://github.com/palfish-t-i-u/palfish-t-i-u-h-th-ng-ver-2 --skill dingtalk-notifications-palfish-t-i-u

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? It provides the operational knowledge needed to maintain and extend the DingTalk group-robot notification pipeline that alerts sales teams when payments are marked paid or courses are activated, covering the DB triggers, background outbox worker, OAuth2 token handling, and admin configuration UI. ## Core Features & Use Cases - Outbox-based delivery pipeline: DB triggers enqueue events into dingtalk_outbox, and a background worker polls every 30 seconds with retry logic (MAX_RETRIES=4, backoff delays) to send messages via the DingTalk Enterprise Internal App API. - Per-team group routing: Maps team_code values to open_conversation_id in dingtalk_team_groups, with admin UI tabs and REST endpoints for CRUD, test sends, and outbox retry. - Use Case: When a new sales team needs DingTalk alerts, use this Skill to add their group mapping, verify the team_code matches nhan_su_sale.team exactly, and test-send a message through the Cấu hình admin tab. ## Quick Start Ask the assistant to add a new DingTalk notification group for a sales team and verify the outbox worker delivers a test message.

Frequently Asked Questions about dingtalk-notifications

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

FAQPage Schema
How do I add a new DingTalk group for a sales team?

Insert a row into dingtalk_team_groups via the admin UI Nhóm thông báo tab or the POST /api/v1/admin/dingtalk-groups endpoint with team_code, open_conversation_id, and group_name. The team_code must exactly match nhan_su_sale.team, and the robot must already be in an internal DingTalk group.

How do I add a new DingTalk notification event type?

Adding an event type requires a database migration that drops and recreates the dingtalk_outbox_event_type_check constraint with the new value added to the allowed array. Apply it on sandbox first, verify an INSERT succeeds, then apply to production.

DingTalk vs Zalo notifications: what is the difference?

DingTalk uses one OAuth2 Enterprise Internal App shared across all teams, routing messages via per-team open_conversation_id. Zalo uses a single global OA access token per database, where minting a new token immediately revokes the old one.

Why is a DingTalk message not being delivered?

Check the dingtalk_outbox row for retries, last_error, and next_retry_at. Common causes are a team_code mismatch with nhan_su_sale.team (silent skip), an external rather than internal DingTalk group, or wrong CLIENT_SECRET causing auth failures on every send.

How do I retry a stuck DingTalk outbox message?

Use the Retry button in the Outbox admin tab or POST to /api/v1/admin/dingtalk-outbox/<id>/retry. This resets retries to 0, clears last_error and sent_at, and sets next_retry_at to now so the worker picks it up on the next poll.

When should I not use the DingTalk notification system?

Do not use it for Zalo OA notification work, which is handled separately, or for changes to payment and activation business logic that merely trigger notifications. It also cannot send to external or public DingTalk groups, only internal organization groups.