Parameters
Should be a stable and unique cache key inside the
run()
. See
resumability for more information.Hide event properties
Hide event properties
The
name
property must exactly match any subscriptions you want to
trigger.The
payload
property will be sent to any matching Jobs and will appear
as the payload
param of the run()
function. You can leave this
parameter out if you just want to trigger a Job without any input data.The optional
context
property will be sent to any matching Jobs and will
be passed through as the context.event.context
param of the run()
function. This is optional but can be useful if you want to pass through
some additional context to the Job.The
id
property uniquely identify this particular event. If unset it
will be set automatically using ulid
.This is optional, it defaults to the current timestamp. Usually you would
only set this if you have a timestamp that you wish to pass through, e.g.
you receive a timestamp from a service and you want the same timestamp to
be used in your Job.
This is optional, it defaults to "trigger.dev". It can be useful to set
this as you can filter events using this in the
eventTrigger()
.Hide properties
Hide properties
An optional Date when you want the event to Trigger Jobs. The event will
be sent to the platform immediately but won't be acted upon until the
specified time.
An optional number of seconds you want to wait for the event to Trigger
any relevant Jobs. The event will be sent to the platform immediately but
won't be acted upon until the specified time.
This optional param will be used by the Trigger.dev Connect feature, which
is coming soon.
Returns
Hide properties
Hide properties
The
id
of the event that was sent.The
name
of the event that was sent.The
payload
of the event that was sentThe
timestamp
of the event that was sentThe
context
of the event that was sent. Is undefined
if no context was
set when sending the event.The timestamp when the event will be delivered to any matching Jobs. Is
undefined
if deliverAt
or deliverAfter
wasn't set when sending the
event.The timestamp when the event was delivered. Is
undefined
if deliverAt
or deliverAfter
were set when sending the event.Copy
Ask AI
//this Job sends multiple events that triggers the second job
client.defineJob({
id: "job-1",
name: "First job",
version: "0.0.1",
trigger: cronTrigger({
cron: "0 9 * * *", // 9am every day (UTC)
}),
run: async (payload, io, ctx) => {
//sends "new.user" events with a userId in the payload
await io.sendEvents("send-events", [
{
name: "new.user",
payload: {
userId: "u_12345",
},
},
{
name: "new.user",
payload: {
userId: "u_67890",
},
},
]);
},
});
client.defineJob({
id: "job-2",
name: "Second job",
version: "0.0.1",
//subscribes to the "new.user" event
trigger: eventTrigger({
name: "new.user",
schema: z.object({
userId: z.string(),
}),
}),
run: async (payload, io, ctx) => {
await io.logger.log("New user created", { userId: payload.userId });
//do stuff with the new user
},
});