Instill VDP enables you to configure pipelines to run automatically in response to events from connected services like GitHub stars or Slack messages. This automation is configured through the on
section in your pipeline recipe.
#Configure Run-on-Event
To set up event-based pipeline execution:
-
Define the event trigger in the
on
section of your pipeline recipe:- Specify a unique event ID to reference this trigger
- Set the component type (e.g.,
github
,slack
) - Define the specific event to listen for (e.g.,
EVENT_STAR_CREATED
,EVENT_NEW_MESSAGE
) - Configure event-specific
config
parameters- Each component defines its own config schema in its documentation (e.g., Slack New Message Event)
- Include authentication via a connection reference
- See Integrations for setting up connections
-
Capture event data using the
listen
field invariable
:- Define variables with descriptive titles and appropriate formats
- Add a
listen
array under each variable - Reference event data using
${on.<event-id>.message.<data-path>}
- Event data schemas are defined in component docs (e.g., Slack New Message Event)
-
When the specified event occurs, the pipeline automatically executes with variables populated from the event data
#Example Recipe
Here's an example recipe showing how to configure a pipeline to respond to GitHub star events:
# VDP Versionversion: v1betaon: slack-0: type: slack event: EVENT_NEW_MESSAGE config: channel-names: - channel-to-be-listened setup: ${connection.my-slack-connection} variable: message: title: message format: string listen: - ${on.slack-0.message.text} user: title: user format: string listen: - ${on.slack-0.message.user.name} channel: title: channel format: string listen: - ${on.slack-0.message.channel.name}component: slack-0: type: slack input: channel-name: channel-for-notification message: Message received in #${variable.channel} from @${variable.user}: ${variable.message} as-user: false condition: setup: ${connection.my-slack-connection} task: TASK_WRITE_MESSAGE