Market Automation System
Automate routine tasks and keep your market running smoothly on autopilot
Choose Your Path
Overview
The Market Automation System lets you schedule recurring tasks that run automatically based on your market's schedule. Instead of manually opening and closing ordering, sending reminders, or performing routine maintenance, you can set up automations that handle these tasks for you—reliably and on time, every time.
Key Features
- Multiple Automation Types: Choose from pre-built templates for common tasks
 - Flexible Scheduling: Set up weekly, daily, or monthly recurring schedules
 - Timezone-Aware: All automations respect your market's timezone
 - Email Notifications: Get notified when automations run successfully or fail
 - Execution History: Track every run with detailed status and error information
 - Easy Management: Enable, disable, edit, or delete automations anytime
 
How It Works
Behind the scenes, our automation system uses:
- BullMQ Job Queue: Reliable, Redis-backed task scheduling that ensures automations run even during high traffic
 - Background Workers: Dedicated processes that handle scheduled tasks without affecting your market's performance
 - Database Logging: Every execution is recorded with timestamps, status, and results
 
Getting Started
To access the automation system:
- Log in as a market administrator
 - Navigate to your market's settings or admin dashboard
 - Look for the "Automate Your Weekly Tasks" section
 - You'll see your current automations and a button to create new ones
 
What You'll See
The automation interface includes:
- Timezone Card: Displays your market's current time and timezone settings
 - Create Automation Button: Opens the form to set up new automations
 - Automation List: Shows all your active and disabled automations with their schedules and last run status
 - Documentation Link: Quick access to this guide (you're reading it now!)
 
Available Automation Types
When you create an automation, you'll choose from pre-built templates designed for common market tasks. Each template defines what the automation does and what configuration options are available.
Open Ordering Window
Automatically enables ordering for customers at a scheduled time. Perfect for starting your weekly ordering cycle on the same day and time every week.
Use Case: Open ordering every Monday at 9:00 AM
Close Ordering Window
Automatically disables ordering at a scheduled time. Ideal for closing your ordering window before harvest day to give growers time to prepare.
Use Case: Close ordering every Friday at 5:00 PM
Customer Pickup Reminders
Automatically sends your market's configured pickup reminder email to all customers with open orders. Uses the same email template as the manual "Email Open Orders" button in your admin panel.
Use Case: Send pickup reminders every Friday at 10:00 AM
Grower Harvest Emails
Automatically sends harvest summary emails to your growers, letting them know what products have been ordered and need to be harvested. Same functionality as the manual "Send Harvest Emails" button.
Use Case: Send harvest emails every Friday at 6:00 PM
Enable New Products
Automatically enables the ability for growers to add new products to your market. Perfect for opening up product submissions at the start of your ordering cycle.
Use Case: Enable new products every Monday at 9:00 AM
Disable New Products
Automatically disables the ability for growers to add new products. Useful for locking down your product list before customers start ordering to prevent mid-week changes.
Use Case: Disable new products every Monday at 11:00 AM
Deactivate Zero Quantity Products
Automatically marks all products with quantities of zero or less as unavailable. Helps keep your market fresh by removing sold-out items from customer view. Same functionality as the manual "Deactivate Zero Quantity Products" button.
Use Case: Deactivate sold-out products every Saturday at 8:00 AM
Creating an Automation
Follow these steps to set up your first automation:
Step 1: Verify Your Timezone
Before creating any automations, check that your market's timezone is correct. All scheduled times use this timezone.
Check the Timezone Card
At the top of the automation section, you'll see "Your Market's Timezone" with the current market time displayed. Verify this matches your actual location.
Update if Needed
If the timezone is wrong, select the correct one from the dropdown and click "Update Timezone". The page will refresh with the new timezone.
Why This Matters
If you're in California but your timezone is set to New York, your automations will run 3 hours earlier than you expect. Always double-check this first!
Step 2: Click "Create Automation"
Click the "Create Automation" button to open the creation form. You'll see fields for configuring your new automation.
Step 3: Select Automation Type
From the "Automation Type" dropdown, choose what you want to automate. Each option includes a description of what it does.
Step 4: Configure the Schedule
Choose when the automation should run:
Day of Week
Select which day of the week this automation should run (Sunday through Saturday). For weekly automations, this determines the recurring day.
Time
Pick the exact time using the time picker. Times are in your market's timezone and use 24-hour format internally (but display in 12-hour format for convenience).
Step 5: Enable Email Notifications (Optional)
Check the box to receive email notifications after each automation runs. You'll get an email with:
- Confirmation that the automation ran successfully
 - The exact time it executed
 - Any error messages if something went wrong
 - A link to your admin dashboard
 
Step 6: Customize Name and Description (Optional)
Expand the "Optional: Customize Name & Description" section if you want to personalize the automation's label. Otherwise, it will use the template's default name.
- Custom Name: Give your automation a memorable name like "Monday Morning Opening" or "Friday Evening Close"
 - Custom Description: Add notes about why you set up this automation or any special considerations
 
Step 7: Create the Automation
Click "Create Automation" to save your new automation. You'll see it appear in your automation list with a status indicator showing whether it's enabled.
Schedule Types Explained
The automation system supports three types of recurring schedules. Choose the one that best fits your market's rhythm.
Weekly Schedule
Runs on the same day of the week at the same time every week. This is the most common schedule type for farmers markets.
Example: Weekly Ordering Cycle
- Automation 1: Open ordering every Monday at 9:00 AM
 - Automation 2: Close ordering every Friday at 5:00 PM
 
This creates a predictable weekly pattern where customers can order Monday through Friday, giving growers the weekend to harvest and prepare for pickup.
Daily Schedule
Runs at the same time every day. Useful for tasks that need to happen regardless of the day of the week.
Example: Daily Reminders
- Automation: Send daily update every day at 8:00 AM
 
Daily automations repeat every single day at the specified time. Be mindful of weekends and holidays when setting these up.
Monthly Schedule
Runs on the same day of the month at the same time every month. Perfect for monthly maintenance tasks or reports.
Example: Monthly Report
- Automation: Generate monthly summary on the 1st of each month at 12:00 AM
 
Monthly automations handle edge cases automatically—if you schedule for day 31 but a month only has 30 days, the automation won't run that month.
Timezone Management
Timezones are critical to ensuring your automations run at the right time for your market and customers.
How Timezones Work
- Every market has a configured timezone (like "America/New_York" or "America/Los_Angeles")
 - All automation times are stored in this timezone
 - The system handles daylight saving time changes automatically
 - When you view execution history, times are displayed in your market's timezone
 
Changing Your Timezone
If you need to update your market's timezone:
- Look for the "Your Market's Timezone" card at the top of the automation section
 - Review the current market time to see if it's correct
 - Use the timezone dropdown to select a new timezone
 - Click "Update Timezone" to save the change
 - The page will reload and all future automation runs will use the new timezone
 
Daylight Saving Time
The system automatically handles daylight saving time transitions. Your "9:00 AM" automation will always run at 9:00 AM in your local timezone, whether it's standard time or daylight time.
Example: Spring Forward
When daylight saving time begins in March, clocks "spring forward" by one hour. Your 9:00 AM automation will still run at 9:00 AM local time—the system handles the adjustment automatically.
Managing Your Automations
Once you've created automations, you can easily manage them through the automation list. Each automation shows its schedule, status, and last run information.
Automation Card Details
Each automation in your list displays:
- Name and Description: What this automation does
 - Schedule: When it runs (e.g., "Runs every Monday at 9:00 AM")
 - Notification Status: Whether email notifications are enabled or disabled
 - Status Badge: Current state (Enabled, Disabled, Last run success/failed)
 - Last Run Time: When the automation last executed and whether it succeeded
 
Action Buttons
Each automation has three action buttons:
Editing an Automation
When you click the Edit button:
- The create automation form opens with the current settings pre-filled
 - Make your desired changes to schedule, notifications, or name
 - Click "Update Automation" to save your changes
 - The automation list refreshes with your updated settings
 
Email Notifications
Stay informed about your market's automations with email notifications. When enabled, you'll receive emails after each automation execution.
What's Included in Notifications
âś… Success Notifications
When an automation runs successfully, you'll receive:
- Confirmation that the task completed
 - The automation name and type
 - Exact execution time
 - Link to your admin dashboard
 
❌ Failure Notifications
If an automation fails, you'll get:
- Alert that the automation failed
 - Error message explaining what went wrong
 - Execution time and automation details
 - Link to check execution history
 
Who Receives Notifications
Email notifications are sent to all market administrators. This ensures that if one admin is unavailable, others can still monitor automation status and respond to issues.
Managing Notification Preferences
You can enable or disable notifications for each automation independently:
- When Creating: Check or uncheck "Send me email notifications" during setup
 - When Editing: Update the notification checkbox and save your changes
 - Best Practice: Enable notifications for critical automations (like opening ordering) but disable for less important ones to reduce email volume
 
Execution History
Every time an automation runs, the system creates a detailed execution record. This history helps you verify automations are working correctly and troubleshoot any issues.
Viewing Execution History
Execution history is displayed directly on each automation card in your list. You'll see:
- Last Executed At: The most recent time this automation ran
 - Last Execution Status: Whether it succeeded, failed, or hasn't run yet
 - Status Badges: Color-coded indicators (green for success, red for failure, gray for disabled)
 
Understanding Status Indicators
The automation completed successfully without errors
The automation encountered an error and couldn't complete
The automation is turned off and won't run on schedule
This automation hasn't executed yet—it's waiting for its scheduled time
Detailed Execution Records
Behind the scenes, the system maintains complete execution records in the database, including:
- Scheduled time vs. actual execution time
 - Whether the automation was triggered by schedule, manual action, or retry
 - Complete error messages for failed executions
 - Results and output from successful runs
 - Retry attempts and their outcomes
 
Troubleshooting
If your automations aren't working as expected, use this guide to diagnose and fix common issues.
Common Issues and Solutions
Automation Didn't Run at Scheduled Time
Check these items:
- Verify the automation is enabled (not paused)
 - Confirm your timezone is set correctly
 - Check the schedule day and time are what you intended
 - Look for error messages in the execution history
 - Ensure the background worker processes are running (contact support if unsure)
 
Automation Runs at Wrong Time
Most common cause: Timezone mismatch
- Check your market's current time display
 - Verify the timezone matches your actual location
 - Update timezone if needed and adjust automation schedules
 - Remember: The system uses market timezone, not your personal device timezone
 
Status Shows "Failed"
Troubleshooting steps:
- Enable email notifications to receive detailed error information
 - Check if the automation template is still active
 - Verify you have proper permissions
 - Look for system maintenance or downtime notices
 - Contact support with the specific error message if it persists
 
Not Receiving Email Notifications
Possible reasons:
- Verify notifications are enabled for that specific automation
 - Check your spam/junk folder
 - Confirm your email address is correct in your user profile
 - Ensure you're listed as a market administrator
 
Can't Create New Automation
Check permissions and templates:
- Verify you're logged in as a market administrator
 - Ensure automation templates are available and enabled
 - Try refreshing the page
 - Check browser console for error messages
 - Contact support if the issue persists
 
Automation List Empty or Not Loading
Loading issues:
- Refresh the page to retry loading
 - Check your internet connection
 - Try a different browser
 - Clear browser cache and cookies
 - Contact support if the problem continues
 
Behind-the-Scenes Technical Details
For technically-minded users, here's how the system works:
- BullMQ Worker: Background processes check for due automations every minute
 - Execution Window: Each automation has a 60-minute window to execute after its scheduled time
 - Retry Logic: Failed automations can be retried up to 3 times with configurable delays
 - Redis Queue: Scheduled tasks are stored in Redis for reliability and performance
 - Database Logging: All executions are logged to the automationExecution table
 
Frequently Asked Questions
How many automations can I create?
There's no hard limit on the number of automations you can create. However, we recommend keeping your automations organized and purposeful. Most markets only need 2-4 automations for routine tasks like opening and closing ordering windows.
Can I have multiple automations that run at the same time?
Yes! If you schedule multiple automations for the same day and time, they'll all run. The system processes them in the order they were created. However, be mindful that simultaneous automations might interact in unexpected ways (for example, one opening ordering while another closes it).
What happens if an automation fails?
When an automation fails, it's marked with a "Failed" status and the error is logged. If you have email notifications enabled, you'll receive an alert with the error message. The system can automatically retry failed automations up to 3 times. If all retries fail, you'll need to investigate and potentially run the task manually.
Can I manually trigger an automation outside its schedule?
Not directly through the automation interface. Automations run only on their scheduled times. However, you can use manual override buttons (like "Open Ordering Now" or "Close Ordering Now") on your market settings page to achieve the same result without waiting for the automation.
What if I need different schedules for different weeks?
The current system supports recurring schedules (weekly, daily, monthly). For one-time changes or irregular schedules, you can either: (1) Temporarily disable the automation and use manual controls, or (2) Edit the automation schedule as needed throughout the month. We're exploring more flexible scheduling options for future updates.
How do I handle holidays or special closures?
For planned holidays, disable your automations a few days in advance and use manual controls during the holiday period. When you're ready to resume, re-enable the automations. Some markets create separate automations for holiday weeks with different schedules, then swap which ones are enabled as needed.
Can I see automation history from more than the last run?
Currently, the market admin interface shows only the most recent execution status. However, all executions are logged in the database. System Administrators can access comprehensive execution history. If you need detailed history for your market, contact support.
Do automations account for daylight saving time?
Yes! The system automatically handles daylight saving time transitions. Your automations will always run at the local time you specified, regardless of whether it's standard time or daylight time. You don't need to manually adjust schedules twice a year.
Can growers or customers see my automations?
No, automations are only visible to market administrators. Growers and customers can see the effects of automations (like ordering being open or closed), but they cannot view or modify the automation schedule itself.
What's the difference between pausing and deleting an automation?
Pausing (disabling) an automation keeps all its settings but prevents it from running on schedule. You can re-enable it anytime without reconfiguring. Deleting permanently removes the automation—you'd need to create it from scratch if you want it back. Use pause for temporary situations (like holidays) and delete only when you're certain you won't need that automation again.
Can I copy an automation to create a similar one?
Not yet, but this is a planned feature. Currently, you'll need to create each automation manually. If you need multiple similar automations (like opening on different days), use the Edit function to quickly adjust times rather than creating from scratch each time.
Will customers be notified when automations run?
The automation system itself doesn't send customer notifications. However, when an automation opens or closes ordering, customers will see the status change when they visit your market. Consider setting up separate customer communication (like weekly reminder emails) to keep shoppers informed about your ordering schedule.