History and troubleshooting

Every action this app runs is recorded. History is the first place to look when an email did not arrive or a request did not land.

The History list

The list

Columns: ID, Name, Type, Status, Duration and Executed At.

Filter by:

  • Action Type - HTTP Request or Email
  • Status - Success, Failed or Pending

Search matches the name of the layout or request. Arriving here from an HTTP request's Request history button pre-filters to that one request, with a Show all events button to clear it.

The detail view

An action detail view

Opening an entry shows:

Card Contents
Event Details Event ID, action type, status, duration, execution time, and the Flow run id
Error Message The provider's or API's actual error, when the action failed
Request Data What was sent - recipients, sender, resolved subject, variables, or the resolved HTTP request
Response Data What came back - the provider message id, or the HTTP status and body

The title tells you which sender was used, for example Order email via [email protected] (MICROSOFT).

[!NOTE] Secret values are redacted from request data before it is stored, so your tokens never end up in your own logs. If you see a blank where a secret should be in the resolved request, that is the redaction - not a broken reference. To check a reference actually resolved, use the Test button on the request instead.

Resending an action

The detail page has a Resend button. It re-renders the layout with the original variables and sends again to the original recipients through the same sender, or re-executes the HTTP request exactly as it was sent.

It runs immediately and counts as one action against your plan. Resend is not available for actions that went through the fallback default sender.

Common failures

The email never arrived, and there is no History entry at all. The action never ran. The problem is in Shopify Flow, not here: check the workflow is turned on, the trigger fired, and any condition actually matched. Tag conditions match exactly, so VIP and vip are different.

Status is Failed with an authentication error. For SMTP, the credentials or port are wrong - open the SMTP server and press Test Connection. For Microsoft 365 or Google, the connection may need re-authorising: check Email Senders → Connected accounts for a Reconnect required badge.

A variable came out blank. Templates render leniently: an unknown variable becomes an empty string rather than an error. Check the spelling and case against the JSON you passed in the Flow action, and remember it is {{ secrets.key }}, not {{ secret.key }}. See Variables and Liquid.

An email body shows [object Object]. You interpolated a whole object. In emails you must reach into it ({{ variables.customer.firstName }}) or loop over it. Only HTTP requests serialise objects to JSON automatically.

The message was rejected for size. Attachments over 20 MB in total are blocked, and Microsoft 365 rejects more than 4 MB of inline attachments. Switch the large files to Link mode. See Attachments and images.

An HTTP request fails with SSRF blocked. The destination resolves to a private or internal network address, which is refused for safety. Use a publicly reachable endpoint.

Everything fails at once with a plan limit message. You have used your 30-day allowance. See Plans and usage.

Asking Sidekick

Shopify Sidekick can query this app directly, read-only. It is often quicker than filtering History by hand:

  • "Did any emails fail this week?"
  • "Why did my last email send fail?"
  • "Which email senders are set up?"
  • "Do I have an HTTP request for Airtable?"

Sidekick will never return secret values, SMTP passwords, OAuth tokens, HTTP header values, or raw payloads - it links you into the app for those.

Still stuck

Open a bug report with your store domain, the layout or request name, and the timestamp of the run. See Report a bug in the Help Center.