Skip to main content
This guide covers best practices for event monitor configuration, webhook implementation, and performance optimization.
Encountering issues? See Troubleshoot event monitors for solutions to common problems.

Choose appropriate schedules

Match schedule frequency to your data needs and budget. Each scheduled run creates a billable job.
Minimum default interval: 24 hours. Schedules more frequent depends on your subscription plan.

Schedule formats

Define schedules in natural language with explicit timezone.
  • "every day at 12 PM UTC"
  • "every day at 9 AM EST"
Common cron patterns:

Testing procedure

Test your schedule format before production use.
1

Create test event monitor

Create an event monitor with your desired schedule (e.g., "every day at 3 PM UTC")
2

Wait for execution

Wait for the scheduled time to pass.
3

Verify cron expression

Check the cron_expression field:
4

Create production event monitor

If correct, create your production event monitor. If incorrect, adjust the schedule format.

Implement robust webhooks

Configure webhook endpoints to handle notifications reliably.

Endpoint requirements

Your webhook endpoint must:
  1. Return 2xx status code within 5 seconds.
  2. Be publicly accessible (not localhost or private network).
  3. Use HTTPS (not HTTP).
  4. Handle POST requests with JSON body.

Quick implementation

Return 200 immediately and process asynchronously to avoid timeouts:
If webhooks aren’t firing, see Troubleshoot: Webhook not firing.

Update event monitor configuration

Update webhook assignments, the record limit, or the schedule for an existing event monitor without recreating it.

When to update

Update an event monitor when you need to:
  • Change which webhooks receive notifications
  • Clear all webhook assignments
  • Adjust the maximum records per run
  • Change how often or at what time the event monitor runs
The reference job cannot be modified. To change the query, create a new event monitor.

Update procedure

1

Get the webhook ID

If you don’t have the webhook ID, list your webhooks:
2

Send update request

To clear all webhook assignments, pass an empty array: "webhook_ids": [].To change the schedule, pass schedule (and optionally timezone) in the same request body, for example {"schedule": "every Monday at 9 AM EST"}. The new schedule takes effect from the next scheduler reload, and the old schedule stops firing. The API returns 422 if the schedule can’t be parsed or runs would be spaced too closely. See Choose appropriate schedules for supported formats.
3

Verify update

List your event monitors to confirm the change took effect:
Webhook and limit updates take effect immediately. The next scheduled execution uses the new configuration. Schedule changes apply from the next scheduler reload.

See also