Send a daily fulfilment list for every pending order
Every day, the workflow reads your orders sheet in Google Sheets, loops through the rows and posts a Slack message for each order whose status is pending, so the packing team starts with a clear to-do list.
Google Sheets
Slack5 steps Setup ~8 min Used on 2.3k sites Store Ops Free to import

What this workflow does
Many small shops track orders in a spreadsheet and update a status column as they go. The hard part is making sure nothing marked pending is forgotten. This workflow reads that sheet every day and posts each pending order to Slack, giving your fulfilment team a fresh list to work from each morning.
The Schedule trigger kicks off a run each day. The Google Sheets Get Rows step reads the rows of your orders sheet; it ships unmapped, so pick the spreadsheet and sheet after import. An Iterator then takes the rows one at a time.
For each row, a Filter continues only when the status column is exactly pending. Inside the Iterator, a row that fails the Filter is skipped and the loop moves to the next row. Rows that pass post "Fulfil order" with the order number and customer name to Slack. The template expects columns named order_number, customer_name and status.
You get one Slack message per pending order, not a single combined list. The sheet is read in full every day, so an order stays in the daily messages until someone changes its status from pending. Capitals don't matter, so "Pending" passes too, but the cell must hold only that word: "pending payment" is skipped.
Morning packing list
A candle maker updates order status in a Google Sheet, and the packing team opens Slack each morning to a message for every order still waiting.
Orders from several channels in one sheet
A seller who copies Etsy, market and website orders into one sheet sees all pending ones in Slack, whatever the source.
Nothing left behind over the weekend
A small bakery's Monday messages include any order that was still pending on Friday, because the status hasn't changed.
How this workflow runs
What happens at each step once the workflow is on, and what you need before you import it.
Schedule Every DayRuns on a daily schedule. Check the schedule after import so the messages arrive before your team starts packing.
Google Sheets Get RowsReads the rows of your orders sheet. Ships unmapped, so choose your orders spreadsheet and tab. The columns should be named order_number, customer_name and status.
Iterator Loop Through ArrayLoops through the rows from the sheet and runs the next two steps once for each row.
Filter Continue If Condition MeetContinues only when the row's status is exactly pending. A row that doesn't match is skipped and the Iterator moves on to the next one.
Slack Send Channel MessagePosts "Fulfil order" with the row's order number and customer name to the Slack channel you choose, once for each pending row.
What you need
- FlowMatticCore
- Google Sheets AccountAccount
- Slack AccountAccount
After importing, map your own data. To keep the template universal, not every step is pre-filled. Open each step in the builder and connect your accounts and fields (channels, lists, sheets, recipients) before you switch the workflow on.
Make it yours
Changes worth making after you import it.
- Change the Filter's value if your sheet uses a different word for orders waiting to ship, such as "to pack", and keep the spelling identical to the sheet.
- Add the shipping address or item column to the Slack message, so the team can pack from the message without opening the sheet.
- Keep shipped orders on a separate tab, so Get Rows has fewer rows to read and the Iterator has less to loop through.
Questions about this workflow
Does Slack get one message or one per order?
One per pending order. The Iterator runs the Filter and the Slack step for each row, and every row that passes posts its own message.
Will an order keep appearing in Slack every day?
Yes, as long as its status in the sheet is still pending. Change the status once it ships and the next day's run skips it.
Which columns must my Google Sheets orders tab have?
The template refers to order_number, customer_name and status. Use those headers, or after import re-map the status condition in the Continue If step (between the Iterator and Slack) and the Slack message to your own column names.
Will a status of Pending or PENDING in the sheet still be posted?
Yes. The Filter ignores upper and lower case, so any of those passes. It does need the whole status to be that one word, so a cell reading pending - paid or pending payment won't pass.
More E-commerce Operations workflows
Other ready-to-import templates from the same category.
Import this workflow into your WordPress site
Download the JSON, import it from the Workflows screen and connect your accounts. Every run stays on your server, with no per-task fees.
30-day money-back guarantee Unlimited workflows and runs Self-hosted
