---
title: "Trigger Plan Revisit For User"
method: POST
path: "/api/notifications/internal/triggers/plan-revisit/{user_id}"
tags: ["notifications"]
---

# Trigger Plan Revisit For User

`POST /api/notifications/internal/triggers/plan-revisit/{user_id}`

## Request

- Base URL: `https://api.retirementlab.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.retirementlab.app/api/notifications/internal/triggers/plan-revisit/{user_id}`
- Auth: HTTP bearer

Server-owned re-engagement trigger for an arbitrary user.

Unlike ``/triggers/plan-revisit`` above (self-service, current user only),
this lets backend/internal scheduling code re-engage any eligible user —
opt-out and device-availability enforcement still happen inside
``send_notification_to_user``, so callers don't need to duplicate that logic.

## Path parameters

- `user_id` integer, required

## Response `200`

Successful Response

- PushSendResponse
  - `topic` string, required
  - `attempted` integer, required
  - `sent` integer, required
  - `failed` integer, required
  - `skipped` boolean

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/retirementlab/apis/income-simulator-api.md) · [All operations](https://skmtc.dev/retirementlab/apis/income-simulator-api/llms.txt) · [OpenAPI document](https://skmtc.dev/retirementlab/apis/income-simulator-api/revisions/b0f00a0333fd?raw)
