adsagent-notifications · git:20260724.c9d24c4 · 2026-07-24 · sha256 f66d421b46a65855

adsagent-notifications git:20260724.c9d24c4A

Immutable. This exact content never changes and is served at /api/v1/blob/f66d421b46a65855.

---
name: adsagent-notifications
description: Use when viewing or configuring AdsAgent email, Feishu, Telegram, or Meta Ads Webhooks integrations, including sending a test notification.
---

# AdsAgent Notifications

Use only advertised operator-scoped Meta MCP tools. OAuth Safe Mode hides
credential-taking tools. If absent, do not solicit credentials in chat; direct
the user to dashboard/operator setup. Never expose internal IDs.

## Inspect

Call `notifications_integrations_list` first. Optional `app_ref` and
`ad_account_id` filters are bounded. Use only masked destinations, public refs,
and status.

Read `monitoring_capabilities` before describing coverage. Runtime truth
overrides this guide.

## What AdsAgent Monitors

Meta Ads Webhooks are event-driven and per ad account:

- `effective_status` -> `meta_effective_status` after a live entity read
- `ad_recommendations` -> `meta_ad_recommendation`
- `with_issues_ad_objects` -> `meta_ad_object_issue`
- `creative_fatigue` -> `meta_creative_fatigue`
- `in_process_ad_objects` -> `meta_ad_object_processed`
- `subscriptions` -> `meta_ads_subscription`

Defaults are `effective_status`, `ad_recommendations`, and
`with_issues_ad_objects`. App registration is not account subscription; each
account needs observed subscription state.

Cached asset-health monitoring runs after asset refresh or
`notifications_scan`; it does not call Meta directly:

- `ad_account_status`
- `ad_account_recharge`
- `page_unpublished`
- `page_ads_restricted`
- `page_no_advertise_access`
- `fb_user_abnormal`
- `fb_user_disabled`
- `fb_user_token_expiring`

Defaults: remaining spend cap <= 50 major units or <= 10 percent; USER-token
expiry <= 7 days; 3600-second cooldown. Product ownership is included when
mapped.

Email, Feishu, and Telegram accept all or one exact `notification_type`, with
minimum `info`, `warning`, or `critical` severity.

Keep these boundaries explicit:

- Webhooks do not replace Insights pulls.
- Webhooks do not continuously stream spend or balance metrics.
- Balance, Page, and FB User health come from cached asset-health monitoring.
- `effective_status` webhook events are live-read before AdsAgent emits the
  verified notification.
- Monitoring never changes customer permissions.

## Configure

1. Call `notifications_integration_prepare` with exactly one action.
2. Show its sanitized summary and warnings. Never repeat credentials,
   destinations, recipients, tokens, or secrets.
3. Wait for explicit user approval.
4. Call `notifications_integration_confirm` once with the returned `confirm_token`.
5. If a task is returned, poll `tasks_get_status(task_ref)` to terminal state.

Supported actions are `configure_channel`, `remove_channel`, `test_channel`, `create_meta_app`, `register_meta_app`, `subscribe_meta_account`, and `unsubscribe_meta_account`.

`test_channel` sends one real external message after confirmation. Prepare is
not delivery evidence.

## Recovery

- Confirmation tokens expire after 15 minutes and are single-use.
- Never replay a confirm after success, timeout, transport failure, or uncertain Meta outcome.
- For uncertain Meta results, re-list with the same filter; do not replay.
- Correct `invalid_fields` once by preparing again, then obtain fresh approval.
- Preserve any `support_ref` for operator review.
- Never create, enable, disable, or modify customer FB User permissions.
- Use only the exact eligible route accepted during prepare.
- Do not treat provider acceptance as destination delivery proof without
  observed state.