influxdata / influxdata/kapacitor
IFTTT Webhooks event handler
- Dominant language
- Go
- Stars
- 2.4k
- Forks
- 479
- Avg merge
- 4d 16h
- Merged PRs (30d)
- 4
Description
If This Than That ([IFTTT](https://ifttt.com/)) is a platform that lets users integrate different services with each other, by creating applets, that have one "this" which triggers an action on one "that" side. One very flexible input (this), is their [Webhooks](https://ifttt.com/services/maker_webhooks) service. Supporting that with the AlertNode would enable a lot of extra integrations very easily.
The way Webhooks work is making a `POST` query to:
```
https://maker.ifttt.com/trigger/{event}/with/key/{key}
```
where `{event}` is a user configurable event name (that is used in one particular applet's recipe), and `{key}` is a user-specific key.
The query *optionally* can have a JSON payload with up to 3 variables: `{ "value1" : "", "value2" : "", "value3" : "" }`, and the "that" recipe can use these values to do something with them.
While in all likelihood there's some way to make AlertNode's `.post()` to work with this (with the right template as the default is insufficient, setting the right headers, etc..), it's quite cumbersome (and I personally haven't managed it so far, but that might be a personal failing:). It would be quite powerful to have a full-fledged integration (that would basically need to set the `event` and the `key`, and optionally `value1/2/3`) and get on with it.
Contributor guide
Research direction
Start by locating AlertNode and its existing .post() behavior, then trace how alert integrations configure requests. Compare that path with the IFTTT Webhooks endpoint and its optional value1/value2/value3 payload. Done means users can configure the event and key, optionally provide the three values, and send a valid Webhooks request.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100