Webhooks
Webhooks sind Rückrufe, die an eine URL gesendet werden, wenn ein bestimmtes Ereignis ausgelöst wird.
Sie können verwendet werden, um StrawPoll einfach mit anderen Diensten zu integrieren.
Eine Webhook-Anfrage sendet JSON-Daten an den Endpunkt. Teile der Datenstruktur hängen vom Typ des Ereignisauslösers ab.
Ereignisauslöser
Webhooks können derzeit durch die folgenden Ereignisse ausgelöst werden:
- Umfrage erstellen
- Wählen Sie
- Deadline endet
- Umfrage löschen
Im Folgenden finden Sie verschiedene Beispiele für die Nutzlast von Anfragen, die auf unterschiedlichen Trigger-Typen basieren.
Beispiel-Request-Payload ("Create"-Trigger)
{
"webhook": {
"name": "Beispiel Webhook #1",
"url": "https://hook.integromat.com/e95yg8w...",
"trigger": "create"
},
"content": {
"id": "abcdefgh1",
"title": "Test Poll",
"url": "https://strawpoll.com/abcdefgh1"
},
"create": {
"id": "abcdefgh1",
"type": "poll",
"title": "Testumfrage",
"url": "https://strawpoll.com/abcdefgh1"
"options": [
{
"id": "abcdefghabcdefgh",
"name": "Antwort #1",
"type": "text"
},
{
"id": "ijklmnopijklmnop",
"name": "Antwort #2",
"type": "text"
},
{
"id": "qrstvwxyqrstvwxy",
"name": "Antwort #3",
"type": "text"
}
]
}
}
Beispiel-Request-Payload ("Vote"-Trigger)
{
"webhook": {
"name": "Beispiel Webhook #1",
"url": "https://hook.integromat.com/e95yg8w...",
"trigger": "vote"
},
"content": {
"id": "abcdefgh1",
"title": "Test Poll",
"url": "https://strawpoll.com/abcdefgh1"
},
"vote": {
"name": "Testuser",
"voted_options": [
{
"option_id": "abcdefghabcdefgh",
"name": "Antwort #1",
"vote": 1
}
]
}
}
Beispiel-Request-Payload ("Vote (Meeting Date)" Trigger)
{
"webhook": {
"name": "Beispiel Webhook #1",
"url": "https://hook.integromat.com/e95yg8w...",
"trigger": "vote"
},
"content": {
"id": "abcdefgh1",
"title": "Test Poll",
"url": "https://strawpoll.com/abcdefgh1"
},
"vote": {
"name": "Testuser",
"voted_options": [
{
"option_id": "abcdefghabcdefgh",
"type": "date",
"name": "2020-11-08T08:00:00Z",
"start_time": "1604822400000",
"end_time": "1604826000000",
"vote": 1
}
]
}
}
Die Felder "start_time" und "end_time" sind Unix-Zeitstempel in Millisekunden.
Beispiel-Request-Payload ("Deadline"-Trigger)
{
"webhook": {
"name": "Beispiel Webhook #1",
"url": "https://hook.integromat.com/e95yg8w...",
"trigger": "deadline"
},
"content": {
"id": "abcdefgh1",
"title": "Test Poll",
"url": "https://strawpoll.com/abcdefgh1"
},
"deadline": {
"time": "2020-11-05T07:40:06Z",
"results": {
"total_votes": 42,
"options": [
{
"id": "abcdefghabcdefgh",
"name": "Antwort #1",
"votes": 26
},
{
"id": "ijklmnopijklmnop",
"name": "Antwort #2",
"votes": 13
},
{
"id": "qrstvwxyqrstvwxy",
"name": "Antwort #3",
"votes": 3
}
]
}
}
}
Beispiel-Request-Payload ("Delete"-Trigger)
{
"webhook": {
"name": "Beispiel Webhook #1",
"url": "https://hook.integromat.com/e95yg8w...",
"trigger": "delete"
},
"content": {
"id": "abcdefgh1",
"title": "Test Poll",
"url": "https://strawpoll.com/abcdefgh1"
},
"delete": {
"id": "abcdefgh1",
"title": "Test Poll",
"url": "https://strawpoll.com/abcdefgh1"
}
}
Wie Sie sehen können, sind für einige Endpunkte die Daten redundant vorhanden.
Das liegt an dem Zweck, immer den "Webhook" und das "Content"-Feld zu senden, egal welches Ereignis ausgelöst wird.