--- title: "eventTrigger()" description: "`eventTrigger()` is set as a [Job's trigger](/sdk/job) to subscribe to an event a Job from [a sent event](/sdk/triggerclient/instancemethods/sendevent)." --- You can have multiple Jobs that subscribe to the same event, they will all trigger when the event gets delivered. ## Parameters The name of the event you are subscribing to. Must be an exact match (case sensitive). A [Zod](/documentation/guides/zod) schema that defines the shape of the event payload. The default is `z.any()` which is `any`. You can use this to filter events based on the source. Used to filter which events trigger the Job. An example: ```typescript { name: ["John", "Jane"], age: [18, 21] } ``` This filter would match against an event with the following data: ```json { "name": "Jane", "age": 18, "location": "San Francisco" } ``` ```typescript eventTrigger() //this Job subscribes to an event called new.user client.defineJob({ id: "job-2", name: "Second job", version: "0.0.1", //subscribes to the "new.user" event trigger: eventTrigger({ //sent events with this name will trigger this Job name: "new.user", //the expected payload shape schema: z.object({ userId: z.string(), tier: z.union([z.literal("free"), z.literal("pro")]), }), //only events with the tier: "pro" will trigger this Job filter: { tier: ["pro"], }, }), run: async (payload, io, ctx) => { await io.logger.log("New pro user created", { userId: payload.userId }); //do stuff }, }); ```