> For the complete documentation index, see [llms.txt](https://docs.shortcutco.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.shortcutco.com/readme/automations/troubleshooting-an-automation-didnt-fire.md).

# Troubleshooting: an automation didn't fire

If a message did not go out when you expected, work through these checks in order.

{% stepper %}
{% step %}

### Make sure the automation is turned on

Open **Automations** and confirm the automation is active.

<figure><img src="/files/uqrBFRHAmpUvhnSZui3t" alt="Automation detail page with active status and filters"><figcaption><p>Check active status, filters, and action settings when an automation does not fire.</p></figcaption></figure>
{% endstep %}

{% step %}

### Confirm you are looking at the right automation

Some automations sound similar. For example:

* **Proposal Reminder** only applies after a proposal has already been sent
* **Job Rescheduled** only runs when a scheduled visit changes
* **Invoice Overdue** only runs after an invoice is still unpaid past the due date
  {% endstep %}

{% step %}

### Check whether the trigger still qualified

Automations often depend on a condition still being true when the message is due to send.

Examples:

* **Proposal Reminder** only sends if the proposal is still not accepted
* **Day-Before Reminder** only sends for an upcoming scheduled visit
* **Payment Failed** only sends if a payment attempt actually fails
  {% endstep %}

{% step %}

### Review delays and send windows

Many automations can send immediately or after a delay. If you added a delay or a **Wait until...** step, the message may still be queued for later.

Scheduled sends use your company timezone.
{% endstep %}

{% step %}

### Check the customer's contact information

If the automation sends by SMS or email, the customer needs valid contact details saved for that channel.
{% endstep %}

{% step %}

### Check whether the customer opted out of texts

If a customer has replied **STOP** to one of your texts, Shortcut records it and stops sending them automated SMS — every trigger, scheduled automations, review requests, and the day-before reminder included. Their conversation in [Messaging](/readme/messaging-inbox.md) says so.

The send shows in history as **skipped**, not failed — nothing went wrong, Shortcut respected their opt-out. Only the customer can undo it, by texting **START**.

Email is unaffected: an SMS opt-out doesn't stop emails.
{% endstep %}

{% step %}

### Re-check the automation's own settings

Library automations keep their built-in trigger and structure. If you duplicated one or built a custom automation, open it and re-check the trigger, filters, and any **After...** / **Wait until...** steps.
{% endstep %}

{% step %}

### If you take manual payments, update the invoice status

If a customer paid by check, cash, or another manual method, make sure you marked the invoice as paid in **Finances** so overdue reminders stop.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Still stuck?

Email **<hello@shortcutco.com>** with:

* automation name
* customer name
* what you expected to happen and when
* a screenshot of the automation settings
  {% endhint %}
