Skip to main content
A Clay signal watches a list for a kind of event and writes new events into a table. In Autumn, the same list goes into a task with the event types and a date window, and your code keeps only events it hasn’t seen.

Read the Clay signals

Note each signal’s type, the list it watches (input), its schedule and its filter.

The task

On a four-account test over a one-month window this returned 14 events in about two and a half minutes. Seven passed every rule; the rest had in_window: unclear because the job post showed no date. Here record_id is in the schema, unlike in Move a table: an account can have several events or none, so the task has to say which account each event belongs to.

Keep only new events

new_signals.py
Run the task on the signal’s old frequency (cron, a CI schedule, a worker), moving the window forward each time. Overlapping windows are fine: the script drops repeats. An event counts as a repeat when its account, type, date and source all match one already seen. Mark events as seen only after they are delivered, so a failed send is retried on the next run. Store seen.json wherever the scheduler keeps state. For job changes on contacts, see Enrichment.

Enrichment

Contacts, emails, phones and job changes.

Move a table

The full steps for one table.