Automation
Scheduled sync, webhooks, and automatic feed updates
Automation
Automate feed generation and updates to keep your Google Merchant Center data always current.
Overview
Max AI: Google Feed Ascend provides multiple automation options:
| Feature | Description |
|---|---|
| Scheduled Sync | Daily automatic feed regeneration |
| Webhook Updates | Real-time updates on product changes |
| Notifications | Alerts for sync status and errors |
Scheduled Sync
Configuration
Configure automatic feed updates in Settings > Feed Settings:
| Setting | Default | Description |
|---|---|---|
| Auto Update Enabled | false | Enable/disable scheduled sync |
| Update Time | 02:00 UTC | Daily sync time (HH:MM format) |
| Timezone | UTC | Display timezone reference |
How It Works
- Scheduler Check: Every minute, the system checks for shops needing sync
- Time Matching: Compares current UTC time with configured update time
- Batch Processing: Up to 5 shops processed concurrently
- Feed Generation: Each active feed is regenerated
Time Matching Logic
- Times are stored in UTC
- 1-minute window for execution (prevents duplicate runs)
- Timezone setting is for display reference only
Best Practices
- Schedule during low-traffic hours (e.g., 2-4 AM)
- Consider Google's crawl schedule
- Allow time for processing large catalogs
Webhook Updates
Product Change Detection
The app automatically receives Shopify webhooks for:
| Event | Trigger |
|---|---|
products/create | New product added |
products/update | Product modified |
products/delete | Product removed |
Processing Flow
Shopify Webhook → Queue Manager → Product Webhook Queue → Feed UpdateHow It Works
- Webhook Received: Shopify sends product change event
- Queue Added: Event added to processing queue (high priority)
- Background Processing: Worker processes the change
- Feed Update: Affected feeds marked for update
Configuration
Webhooks are automatically registered when you install the app. No manual configuration needed.
Queue Settings
| Setting | Value |
|---|---|
| Queue Name | product-webhook |
| Priority | HIGH |
| Retry | Exponential backoff |
| Timeout | 30 seconds |
Notifications
Notification Types
| Type | Description |
|---|---|
| Feed Generated | Feed successfully regenerated |
| Sync Complete | All feeds synced |
| Error Alert | Generation or sync failure |
| Credit Warning | Low AI credits |
Configuration
Enable/disable notifications in Settings > General:
- Notifications Enabled: Toggle all notifications
- Per-type toggles coming soon
Automation Architecture
Components
┌─────────────────────────────────────────────────────────────┐
│ Automation System │
├─────────────────────────────────────────────────────────────┤
│ │
│ Scheduler (feed-auto-sync-scheduler.server.ts) │
│ ├─ Runs every minute │
│ ├─ Checks update times │
│ └─ Triggers shop syncs │
│ │
│ Queue System (BullMQ + Redis) │
│ ├─ product-webhook queue │
│ ├─ feed-generation queue │
│ └─ feed-generation-ai queue │
│ │
│ Workers │
│ ├─ Product Webhook Worker │
│ ├─ Feed Generation Worker │
│ └─ AI Generation Worker │
│ │
└─────────────────────────────────────────────────────────────┘Concurrency Limits
| Resource | Limit |
|---|---|
| Concurrent Shops | 5 |
| Concurrent Jobs per Queue | 2 |
| Processing Timeout | 30 seconds |
Manual Triggers
Dashboard Update
Click "Update" button on any feed to trigger immediate regeneration.
API Trigger
Use the API to programmatically trigger updates:
POST /api/feeds/generate
{
"feedId": "feed_123",
"forceRegenerate": true
}Monitoring
Sync Status
View sync status on the dashboard:
| Status | Description |
|---|---|
| idle | No sync in progress |
| syncing | Sync in progress |
| failed | Last sync failed |
Job History
Check generation history:
- Navigate to Feed Details
- View Recent Jobs section
- See status, duration, and errors
Logs
Detailed logs available in:
- Feed generation logs
- Webhook processing logs
- Error logs
Troubleshooting
Scheduled Sync Not Running
| Issue | Solution |
|---|---|
| Not enabled | Enable in Feed Settings |
| Wrong time | Check update time setting |
| Server issue | Contact support |
Webhooks Not Processing
| Issue | Solution |
|---|---|
| Not registered | Reinstall app to register webhooks |
| Queue stuck | Check Redis connection |
| Processing errors | Check error logs |
Slow Processing
| Issue | Solution |
|---|---|
| Large catalog | Consider batch processing |
| High concurrency | Reduce concurrent jobs |
| AI enabled | Disable AI for faster sync |
Best Practices
1. Balance Frequency and Resources
- Daily sync is sufficient for most stores
- Real-time webhooks handle urgent updates
- Avoid over-scheduling
2. Monitor Performance
- Check sync duration regularly
- Watch for failed jobs
- Review error logs
3. Plan for Peak Times
- Schedule syncs during low-traffic periods
- Consider timezone differences
- Account for Google processing time
4. Use Webhooks for Urgency
- Webhooks provide real-time updates
- Combine with scheduled sync for reliability
- Monitor webhook queue health