Quick overview
This workflow runs twice on weekdays (or manually) to read shipping-ready orders from a Google Sheets “Orders” tab, optionally fetch tracking details from ShipStation, and send a tracking email via Gmail, then records the sent timestamp back in the sheet to prevent duplicates.
How it works
- Runs on a weekday schedule at 08:30 and 16:30 or starts manually.
- Loads workflow configuration and reads the Orders tab from Google Sheets (or uses built-in demo orders if the sheet isn’t connected).
- Filters for rows with Stage set to “Shipped” that have a confirmation timestamp and have not had a shipping email recorded yet.
- For each eligible order, uses the tracking number on the sheet if present, otherwise queries the ShipStation API for carrier, tracking number, and ship date when enabled.
- Stops the order if no tracking number is found, and separately surfaces any rows marked “Shipped” without a confirmation timestamp.
- Composes a shipping and installation email (including tracking details and installation info derived from product rules) and sends it via Gmail in test/live modes.
- Updates the Google Sheet row with carrier, tracking, ship date, and a “Ship email sent” timestamp so future runs skip it.
Setup
- Add Google Sheets credentials and set the spreadsheet ID and tab name in the config so the workflow can read and update your Orders board.
- Add Gmail credentials and set the From name and optional Reply-To/test email values in the config.
- Ensure your Google Sheet includes the expected columns (for example Stage, Confirmation sent, Carrier, Tracking no., Shipped date, and Ship email sent) and that your team marks orders as “Shipped” in the Stage column.
- (Optional) Add ShipStation API credentials and enable ShipStation in the config to fetch tracking automatically when the sheet row doesn’t include it.
- Review preview/test/live mode settings in the config (TEST_RUN and TEST_EMAIL) before enabling the schedule.
Customization
- Part 2 of a 2 parts Shopify, Etsy or Square - Order to Ship Engine