1. Home
  2. Docs
  3. Community & contributing
  4. Webhook specification for contribution

Webhook specification for contribution

There are a few different phases:

Exploration

  • Sign up for the service whose webhooks you will be integrating
  • Browse to the service’s admin UI
  • Switch on webhooks (sometimes called a Streaming or HTTP Response API)
  • Provide a Snowplow collector as the target for the webhooks. For more real-time testing, setup a local collector and then use Ngrok.
  • Cause all the various webhooks to be triggered, and review their payload structures

Schema work

  • Create a branch in snowplow/iglu-central called feature/webhooks-<<service>>
  • Create a branch in snowplow/snowplow called feature/webhooks-<<service>>
  • In the branch in snowplow/iglu-central, add JSON Schemas for each webhook event
  • In the branch in snowplow/snowplow, add Redshift DDL for each webhook event
  • In the branch in snowplow/snowplow, add JSON Path files for each webhook event

Integration work

  • In the branch in snowplow/snowplow, add a new file into:

3-enrich/scala-common-enrich/src/main/scala/com.snowplowanalytics.snowplow.enrich/common/adapters/registry

  • Implement the pre-processing for this webhook in this file
  • Now update the AdapterRegistry to include the new Adapter:

3-enrich/scala-common-enrich/src/main/scala/com.snowplowanalytics.snowplow.enrich/common/adapters AdapterRegistry.scala