AgentPing - Phone Call Alerts for AI Agents
Get a free account at agentping.me to get started. You'll need to verify your phone number and generate an API key.
AgentPing gets the user's attention when normal chat is not enough. It places voice calls to the user's verified phone number, with retries, snooze, and acknowledgement tracking.
AgentPing is an escalation layer, not a messaging service and not an approval system. Use it when the user truly needs to notice something. For approval workflows, a phone acknowledgement means the user received the alert, not that they approved the action.
The Core Pattern
Preferred Pattern: Schedule First, Escalate Second
If the agent supports timers, scheduled checks, or deferred tasks, use this pattern:
- 1. Send a chat message explaining what you need.
- Record a checkpoint for the conversation, such as the latest user message ID or timestamp.
- Schedule a follow-up check at the escalation deadline.
- At that check:
- If the user has replied since the checkpoint -> do nothing.
- If the user has not replied -> call
agentping_alert with
delay_seconds: 0.
This is the safest integration pattern for the current service because AgentPing is only invoked if the user still has not replied.
Fallback Pattern: Create Delayed Alert Immediately
Only use this if the agent cannot schedule a future check:
- 1. Send a chat message explaining what you need.
- Call
agentping_alert with a nonzero delay_seconds. - If the user replies before the delay expires, immediately call the acknowledge endpoint with
ack_source: "chat". - If the user does not reply, AgentPing will call the user's phone when the delay expires.
This fallback is less reliable. If the agent crashes, forgets, or fails to acknowledge after the user replies, the user may still get an unnecessary call.
Tool: agentping_alert
Creates an escalation alert. AgentPing will call the user's verified phone if they still have not responded.
Parameters
| Parameter | Required | Description |
|---|
| INLINECODE6 | Yes | Short summary of what needs attention (max 500 chars). This is spoken aloud during the phone call. |
| INLINECODE7 |
Yes | Use
"normal" or
"critical" for new integrations. |
|
message | No | Longer context (max 2000 chars). Spoken during the voice call. |
|
alert_type | No | Category that sets a default delay if
delay_seconds is omitted. |
|
delay_seconds | No | Seconds to wait before calling (0-3600). Overrides the alert_type default. |
|
phone_number | No | Target verified phone number in E.164 format. If omitted, AgentPing uses the primary verified number. |
|
expires_in_minutes | No | Auto-expire after N minutes (1-1440). Use for time-sensitive events. |
|
metadata | No | JSON object with tracking data (task IDs, URLs, run IDs, etc.). |
Choosing Severity
| Severity | When to use | Behavior |
|---|
| INLINECODE17 | Default choice. User should respond soon but it is not an emergency. | Voice call with retries. Respects quiet hours if the user's plan and profile enable them. |
| INLINECODE18 |
Something is actively broken, security-sensitive, or genuinely time-critical. | Voice call with retries. Bypasses quiet hours. |
Use normal unless the situation genuinely cannot wait.
Deprecated severities are still accepted for backwards compatibility:
- -
low maps to INLINECODE21 - INLINECODE22 maps to INLINECODE23
- INLINECODE24 maps to INLINECODE25
New integrations should use only normal and critical.
Choosing Alert Type
Pick the category that best describes your situation. If you omit delay_seconds, AgentPing uses the alert type default:
| Alert Type | Default Delay | When to use |
|---|
| INLINECODE29 | 5 minutes | You need a decision before you can proceed |
| INLINECODE30 |
2 minutes | Something broke and you cannot fix it yourself |
|
threshold | 10 minutes | A metric or condition crossed a boundary |
|
reminder | 5 minutes | Time-sensitive nudge the user asked for |
|
other | 0 (immediate) | Anything else |
Important: severity=critical does not automatically override the alert type delay. If you want an immediate call, set delay_seconds: 0.
API Details
Base URL: https://api.agentping.me
Auth header: INLINECODE37
Create an alert
Use this when the escalation window has already elapsed and the user still has not replied:
CODEBLOCK0
Response (201):
CODEBLOCK1
Fallback: create a delayed alert immediately
Only for agents that cannot schedule a later check:
CODEBLOCK2
This returns waiting_for_primary_ack. If the user replies in chat before the call starts, the agent must acknowledge the alert via API to cancel escalation.
Check alert status
Use this to see whether the user has acknowledged.
CODEBLOCK3
Key fields in the response:
- -
status: waiting_for_primary_ack, escalating_call, acknowledged, snoozed, delivered, expired, or INLINECODE46 - INLINECODE47 : timestamp when acknowledged, or INLINECODE48
- INLINECODE49 : how the alert was acknowledged, such as
dtmf, chat, api, sms_reply, sms_link, or INLINECODE55 - INLINECODE56 : the configured wait before the first call
AgentPing does not currently push acknowledgement events back to the agent. If the agent needs to observe the result programmatically, it should poll this endpoint.
Acknowledge an alert via API
If the user responds in chat directly, the agent should acknowledge the alert to stop escalation:
CODEBLOCK4
This is especially important when using the fallback delayed-alert pattern.
Example Scenarios
1. Approval Gate
You need permission before proceeding with a deploy, purchase, or destructive action.
CODEBLOCK5
2. Task Failure
Something broke and you cannot recover on your own.
CODEBLOCK6
3. Long-Running Task Complete
A build, scrape, or report finished and the user asked to be notified if they miss the chat message.
CODEBLOCK7
4. Time-Sensitive Reminder
The user asked to be reminded about something with a deadline.
CODEBLOCK8
5. Security Event
Unauthorized access, leaked credential, or suspicious activity.
CODEBLOCK9
6. Threshold / Monitoring Alert
A metric crossed a boundary. Important, but not necessarily an emergency.
CODEBLOCK10
Important Rules
- - Always use chat first. AgentPing should be the escalation path, not the first contact.
- Prefer schedule-then-send when the agent supports it. This avoids unnecessary calls if the user replies in chat.
- Use the delayed-alert pattern only as a fallback. If you use it, the agent must acknowledge the alert when the user replies in chat.
- Use
normal by default. Only use critical for genuine emergencies. - For immediate calls, set
delay_seconds: 0. Do not assume critical alone removes the template delay. - Phone acknowledgement is not approval. Receipt is not permission to proceed.
- Set
expires_in_minutes for time-bound events. Do not keep calling about something that is already irrelevant. - Do not spam. Rate limit is 20 alerts per hour.
- Keep titles short and clear. The title is spoken aloud during the call.
- Include enough context in
message. The user should understand the issue from the phone call alone.
External Endpoints
This skill contacts the following endpoints over HTTPS:
| Endpoint | Method | Data Sent |
|---|
| INLINECODE63 | POST | Alert title, severity, message, alerttype, delayseconds, phonenumber, expiresin_minutes, metadata |
| INLINECODE64 |
GET | None (reads alert status) |
|
https://api.agentping.me/v1/alerts/{id}/acknowledge | POST | Acknowledgement source |
All requests are authenticated with the user's AGENTPING_API_KEY via the X-API-Key header.
Security & Privacy
- - All communication with
api.agentping.me uses HTTPS (TLS 1.2+). - The API key (
AGENTPING_API_KEY) is a per-user secret that authorizes requests on behalf of the user's account. It is never sent to any other service. - Voice calls are placed only to phone numbers the user has previously verified on their AgentPing account. This skill cannot call arbitrary numbers.
- Alert content (title, message, metadata) is stored on AgentPing's servers for the user's alert history and is spoken aloud during the phone call.
- No data is shared with third parties beyond the telephony provider (Twilio) which delivers the voice call.
What Happens During the Phone Call
When AgentPing calls the user:
- - The alert title and message are spoken aloud
- The user can press 0 to acknowledge
- The user can press 1 to snooze for 5 minutes
- On paid plans, the user can enter 2-120 then # to snooze for a custom number of minutes
Alert Statuses
| Status | Meaning |
|---|
| INLINECODE70 | Delay period before the first call starts |
| INLINECODE71 |
Voice call delivery is in progress or retrying |
|
delivered | A call was completed but not acknowledged |
|
acknowledged | User acknowledged and escalation stopped |
|
snoozed | User snoozed and will be called again later |
|
expired | Alert timed out without acknowledgement |
|
failed | Delivery failed |
Failure Modes and Policy Constraints
Alert creation can fail if:
- - the user has no verified phone number
- voice calls are disabled in the user's profile
- quiet hours are active for a normal-severity alert on Starter or Pro
- the account has alerts disabled or emergency stop enabled
- monthly quota or rate limits have been exceeded
Quiet-hours note:
- -
normal respects quiet hours if the user's plan and settings enable them - INLINECODE78 bypasses quiet hours
- quiet hours are a paid-plan feature; free users do not get quiet-hours suppression
OpenClaw Setup
Before using this skill in OpenClaw:
- 1. Create an AgentPing account at https://agentping.me
- Verify at least one phone number
- Go to https://agentping.me/api-keys and create an API key
- Copy the key immediately because it is shown only once
- In OpenClaw, edit
~/.openclaw/openclaw.json and add the key under INLINECODE80
Example:
CODEBLOCK11
This skill declares AGENTPING_API_KEY in its metadata, and OpenClaw maps skills.entries.agentping.apiKey to that env var at runtime.
AgentPing - AI代理的电话呼叫提醒
在 agentping.me 获取免费账户即可开始使用。 您需要验证您的电话号码并生成一个API密钥。
当普通聊天不足以引起用户注意时,AgentPing 会通过电话呼叫用户的已验证电话号码,并支持重试、暂停和确认跟踪。
AgentPing 是一个升级层,不是消息服务,也不是审批系统。 在用户确实需要注意某些事情时使用它。对于审批工作流,电话确认意味着用户收到了提醒,而不是他们批准了该操作。
核心模式
推荐模式:先安排,后升级
如果代理支持定时器、定时检查或延迟任务,请使用此模式:
- 1. 发送聊天消息,说明您需要什么。
- 记录一个检查点,例如最新的用户消息ID或时间戳。
- 安排一个后续检查,在升级截止时间进行。
- 在该检查时:
- 如果用户自检查点以来已回复 -> 不执行任何操作。
- 如果用户尚未回复 -> 使用 delay
seconds: 0 调用 agentpingalert。
这是当前服务最安全的集成模式,因为只有在用户仍未回复时才会调用 AgentPing。
备用模式:立即创建延迟提醒
仅当代理无法安排未来检查时使用:
- 1. 发送聊天消息,说明您需要什么。
- 使用非零的 delayseconds 调用 agentpingalert。
- 如果用户在延迟到期前回复,立即使用 ack_source: chat 调用确认端点。
- 如果用户未回复,AgentPing 将在延迟到期时呼叫用户的电话。
此备用模式可靠性较低。如果代理崩溃、忘记或未能在用户回复后确认,用户可能仍会收到不必要的电话。
工具:agentping_alert
创建一个升级提醒。如果用户仍未响应,AgentPing 将呼叫用户的已验证电话号码。
参数
| 参数 | 必需 | 描述 |
|---|
| title | 是 | 需要关注的事项的简短摘要(最多500个字符)。在电话通话中会朗读出来。 |
| severity |
是 | 新集成使用 normal 或 critical。 |
| message | 否 | 更长的上下文(最多2000个字符)。在语音通话中朗读。 |
| alert
type | 否 | 类别,如果省略 delayseconds,则设置默认延迟。 |
| delay
seconds | 否 | 呼叫前等待的秒数(0-3600)。覆盖 alerttype 的默认值。 |
| phone_number | 否 | 目标已验证电话号码,采用E.164格式。如果省略,AgentPing 使用主要已验证号码。 |
| expires
inminutes | 否 | N分钟后自动过期(1-1440)。用于时间敏感事件。 |
| metadata | 否 | 包含跟踪数据的JSON对象(任务ID、URL、运行ID等)。 |
选择严重级别
| 严重级别 | 何时使用 | 行为 |
|---|
| normal | 默认选择。用户应尽快回复,但并非紧急情况。 | 带重试的语音呼叫。如果用户的套餐和个人资料启用了静音时段,则遵守静音时段。 |
| critical |
某些事情正在发生故障、涉及安全或确实时间紧迫。 | 带重试的语音呼叫。绕过静音时段。 |
除非情况确实不能等待,否则使用 normal。
为向后兼容,仍接受已弃用的严重级别:
- - low 映射到 normal
- urgent 映射到 normal
- persistent_critical 映射到 critical
新集成应仅使用 normal 和 critical。
选择提醒类型
选择最能描述您情况的类别。如果您省略 delay_seconds,AgentPing 使用提醒类型的默认值:
| 提醒类型 | 默认延迟 | 何时使用 |
|---|
| approval | 5分钟 | 您需要做出决定才能继续 |
| task_failure |
2分钟 | 某些东西坏了,您自己无法修复 |
| threshold | 10分钟 | 指标或条件越过了边界 |
| reminder | 5分钟 | 用户要求的时间敏感提醒 |
| other | 0(立即) | 其他任何情况 |
重要提示:severity=critical 不会自动覆盖提醒类型的延迟。如果您想要立即呼叫,请设置 delay_seconds: 0。
API 详情
基础URL: https://api.agentping.me
认证头: X-API-Key: $AGENTPINGAPIKEY
创建提醒
当升级窗口已过且用户仍未回复时使用:
bash
curl -s -X POST https://api.agentping.me/v1/alerts \
-H Content-Type: application/json \
-H X-API-Key: $AGENTPINGAPIKEY \
-d {
title: 需要部署审批,
severity: normal,
alert_type: approval,
message: 准备将v2.4.1部署到生产环境。有3个待处理迁移。等待您在聊天中批准。,
delay_seconds: 0,
metadata: {action: deploy, version: v2.4.1}
}
响应(201):
json
{
id: alert_abc123,
status: escalating_call,
severity: normal,
alert_type: approval,
title: 需要部署审批,
created_at: 2026-03-23T10:00:00Z,
expires_at: 2026-03-23T11:00:00Z
}
备用方案:立即创建延迟提醒
仅适用于无法安排后续检查的代理:
bash
curl -s -X POST https://api.agentping.me/v1/alerts \
-H Content-Type: application/json \
-H X-API-Key: $AGENTPINGAPIKEY \
-d {
title: 需要部署审批,
severity: normal,
alert_type: approval,
message: 准备将v2.4.1部署到生产环境。有3个待处理迁移。等待您在聊天中批准。,
delay_seconds: 300
}
这将返回 waitingforprimary_ack。如果用户在呼叫开始前在聊天中回复,代理必须通过API确认提醒以取消升级。
检查提醒状态
使用此功能查看用户是否已确认。
bash
curl -s https://api.agentping.me/v1/alerts/{alert_id} \
-H X-API-Key: $AGENTPINGAPIKEY
响应中的关键字段:
- - status:waitingforprimaryack、escalatingcall、acknowledged、snoozed、delivered、expired 或 failed
- acknowledgedat:确认时间戳,或 null
- acknowledgedvia:提醒的确认方式,如 dtmf、chat、api、smsreply、smslink 或 manual
- delay_seconds:首次呼叫前配置的等待时间
AgentPing 目前不会将确认事件推送回代理。如果代理需要以编程方式观察结果,应轮询此端点。
通过API确认提醒
如果用户直接在聊天中回复,代理应确认提醒以停止升级:
bash
curl -s -X POST https://api.agentping.me/v1/alerts/{alert_id}/acknowledge \
-H Content-Type: application/json \
-H X-API-Key: $AGENTPINGAPIKEY \
-d {ack_source: chat}
在使用备用延迟提醒模式时,这一点尤其重要。
示例场景
1. 审批关卡
在执行部署、购买或破坏性操作之前,您需要获得许可。
推荐模式:
- 1. 发送聊天:我已准备好将v2.4.1部署到生产环境。有3个待处理迁移。我应该继续吗?
- 保存当前对话检查点。
- 安排5分钟后的后续检查。
- 如果届时用户尚未回复,调用agentping_alert:
- title: 需要部署审批
- severity: normal
- alert_type: approval
- delay_seconds: 0
- message: 准备将v2.4.1部署到生产环境。有3个待处理迁移。等待您在聊天中批准。
- 5. 如果