---
title: Wait USSD Push
description: "Wait for a network-initiated USSD push: a balance alert, a subscription notice, a promotion. The step sends nothing, it watches the SIM."
lastUpdated: "2026-09-23"
---

> **For AI agents:** the complete documentation index is at [llms.txt](/llms.txt). Append `.md` to any page URL for its markdown version.

Wait for a network-initiated USSD push: a balance alert, a subscription notification, a promotional message. The action sends nothing; it watches the SIM and verifies the message when it arrives.

## Parameters

| Parameter | Required | Description |
| ----------- | ---------- | ------------- |
| Expected Message | No | The push content you expect. The result records the match ratio. |
| Check reception from a previous step | No | Start watching from a previous action's position instead of this one, for pushes triggered earlier in the flow. |
| Reception is optional | No | The test passes even if no push arrives; variables get their default values. Default: off. |

## Results and metrics

In the action report (`result`):

| Field | Description |
|-------|-------------|
| `message` | The push content received. |
| `session` | Session state after the push: `alive` or `close`. |
| `ratio` | Match ratio (0 to 100) against the expected message. |
| `relative_duration` | How long after the watch started the push arrived, in seconds. |
| `dynamic_variables` | Values extracted from the push into variables. |

In Analytics, each run feeds the USSD push measurement with `reception_duration_seconds` and `duration_seconds`, tagged by status, antenna, and access technology.

## What's next?

<Columns cols={2}>
  <Card title="USSD Command" icon="hashtag" href="/tests/actions/cellular/ussd">

    Trigger the flow that causes the push

</Card>
  <Card title="Wait SMS" icon="envelope" href="/tests/actions/cellular/wait-sms">

    The same pattern for incoming SMS

</Card>
</Columns>
