Skip to main content

Scheduling

42feeds provides a powerful scheduling system to automate your product feed workflows. You can schedule both imports (fetching fresh data from external sources) and exports (generating channel-specific feeds).


Overview​

The Schedule page (/schedule) is your central hub for managing all automated tasks. From here you can:

  • View all scheduled imports and exports
  • Filter by type (All, Imports, Exports)
  • See active vs. paused schedules at a glance
  • Monitor last run times
  • Manually trigger any schedule with "Run Now"

Scheduled Imports​

Scheduled imports automatically fetch product data from external sources at regular intervals.

Supported Source Types​

Source TypeDescription
URL (CSV/TSV)Direct link to a CSV or TSV file hosted anywhere on the web
Google SheetsPublic Google Sheets document (automatically converts to CSV for import)

Creating an Import Schedule​

  1. Navigate to Schedule from the sidebar
  2. Click New Import
  3. Fill in the required fields:
    • Name: A descriptive name (e.g., "Daily Product Updates")
    • Description: Optional notes about this schedule
    • Source Type: Choose URL or Google Sheets
    • Source URL: The full URL to your data source
    • Frequency: How often to run (Hourly, Daily, Weekly, Monthly)
    • Time (UTC): When to execute (not applicable for hourly)
    • Day of Week/Month: For weekly or monthly schedules

Frequency Options​

FrequencyConfigurationExample Display
HourlyRuns every hour"Every hour"
DailySpecify time in UTC"Daily at 06:00 UTC"
WeeklySpecify day and time"Weekly on Monday at 06:00 UTC"
MonthlySpecify day of month and time"Monthly on day 1 at 06:00 UTC"

How Imports Work​

When a scheduled import runs:

  1. The system fetches data from the source URL
  2. For Google Sheets, the URL is automatically converted to a CSV export URL
  3. The data is parsed and validated
  4. A new feed is created with the imported data
  5. The feed is stored in your project with a timestamp
  6. Import logs record the result (success/failure, rows imported)

Error Handling​

If an import fails, the system creates a Quality Alert with details:

  • HTTP errors: When the source URL is unreachable (includes status code)
  • Parse errors: When the data format is invalid or empty

Failed imports are logged and don't affect your existing feeds.


Scheduled Exports​

Scheduled exports automatically generate channel-specific feeds at regular intervals, ensuring your advertising channels always have fresh data.

Creating an Export Schedule​

  1. Navigate to Schedule from the sidebar
  2. Click New Export
  3. Fill in the required fields:
    • Name: A descriptive name (e.g., Daily Google Shopping Export)
    • Description: Optional notes
    • Frequency: How often to generate the export
    • Time (UTC): When to execute
    • Day of Week/Month: For weekly or monthly schedules

Export schedules are linked to:

  • A specific feed as the data source
  • A channel type (e.g., Google Shopping, Meta, etc.)
  • Optional mapping template for field transformations
  • Custom field mappings for channel requirements

Managing Schedules​

Schedule Actions​

Each schedule card provides these controls:

ActionDescription
Run NowManually trigger the schedule immediately
Pause/ActivateToggle the schedule on or off without deleting
DeletePermanently remove the schedule

Status Indicators​

  • Active (green badge): Schedule is running on its defined frequency
  • Paused (gray badge): Schedule exists but won't run automatically

Last Run Information​

Each schedule displays when it last ran with a relative timestamp (e.g., "2 hours ago").


Dashboard Integration​

The home dashboard includes a Next Scheduled widget showing your upcoming 4 tasks. This displays both imports and exports sorted by next run time, giving you visibility into what's coming up.


Import Logs​

Every scheduled import creates a log entry tracking:

  • Status: Running, Success, or Failed
  • Started At: When the import began
  • Completed At: When it finished
  • Rows Imported: Number of items processed (on success)
  • Error Message: Details if the import failed
  • Feed ID: Link to the created feed (on success)

Database Schema​

Scheduled Imports Table​

scheduled_imports (
id UUID PRIMARY KEY,
user_id UUID NOT NULL,
project_id UUID,
name TEXT NOT NULL,
description TEXT,
source_type TEXT NOT NULL, -- 'url' or 'google_sheets'
source_url TEXT NOT NULL,
schedule_frequency TEXT NOT NULL, -- 'hourly', 'daily', 'weekly', 'monthly'
schedule_time TIME DEFAULT '00:00:00',
schedule_day_of_week INTEGER, -- 0-6 (0 = Sunday)
schedule_day_of_month INTEGER, -- 1-31
is_active BOOLEAN DEFAULT true,
last_run_at TIMESTAMPTZ,
next_run_at TIMESTAMPTZ,
created_at TIMESTAMPTZ,
updated_at TIMESTAMPTZ
)

Scheduled Exports Table​

scheduled_exports (
id UUID PRIMARY KEY,
user_id UUID NOT NULL,
project_id UUID,
name TEXT NOT NULL,
description TEXT,
export_id UUID, -- Reference to feed_exports
template_id UUID, -- Reference to mapping_templates
feed_id UUID, -- Reference to feeds
channel_type TEXT NOT NULL,
field_mappings JSONB DEFAULT '{}',
schedule_frequency TEXT NOT NULL,
schedule_time TIME DEFAULT '00:00:00',
schedule_day_of_week INTEGER,
schedule_day_of_month INTEGER,
is_active BOOLEAN DEFAULT true,
last_run_at TIMESTAMPTZ,
next_run_at TIMESTAMPTZ,
created_at TIMESTAMPTZ,
updated_at TIMESTAMPTZ
)

Best Practices​

  1. Name schedules descriptively: Use names like "Daily Shopify Inventory Update" rather than "Schedule 1"
  2. Stagger timing: If you have multiple schedules, offset their times to avoid resource conflicts
  3. Use appropriate frequencies:
    • Hourly for rapidly changing inventory/pricing
    • Daily for most product catalogs
    • Weekly for slow-moving catalogs
  4. Monitor alerts: Check Quality Alerts regularly for failed imports
  5. Test with Run Now: Before relying on a schedule, use "Run Now" to verify it works

Troubleshooting​

Import Not Running​

  • Check if the schedule is Active (not Paused)
  • Verify the source URL is accessible
  • For Google Sheets, ensure the sheet is publicly viewable
  • Check Quality Alerts for error details

No Data Imported​

  • Verify the CSV has headers in the first row
  • Check that the file isn't empty
  • Ensure the URL returns CSV/TSV content (not an HTML page)

Wrong Time Execution​

  • All times are in UTC. Convert your local time accordingly
  • For weekly schedules, Sunday = 0, Saturday = 6