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