Webhooks

What Are Webhooks?

Webhooks allow the Church Online Platform to send real-time data about attender engagement to your Church Management Software (ChMS) or other external tools. This makes it easier to track and respond to how people interact during services.

Data points sent via Webhooks include:

  • When an attender joins a service
  • When someone serves as a host
  • When a chat message is posted
  • When an attender requests prayer
  • When a host accepts a prayer request
  • When someone interacts with a Moment (click, like, share)
  • When a user account is created, updated, deleted, or muted

Note: Webhooks work best when your attenders are signed in with a Church Online Platform account.

Webhook Events

All webhook events follow the CloudEvents specification. Event schemas fall into four categories: Service, User, Moment, and Prayer.

Service Events

church.online.service.attended

Sends an attendance record for each unique user that attended a service.

{
"specversion": "1.0",
"type": "church.online.service.attended",
"source": "https://live.example.church",
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"time": "2018-04-05T17:31:00Z",
"datacontenttype": "application/json",
"dataschema": "https://developers.online.church/docs/cloudevents/spec/service",
"data": {
"user": {
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"firstName": "Joe",
"lastName": "Test",
"email": "[email protected]",
"nickname": "Joe T.",
"role": null,
"meta": {
"externalId": "auth0:12345"
}
},
"service": {
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"scheduleTime": "2018-04-05T17:31:00Z"
},
"totalTimeAttended": 123456
}
}

church.online.service.served

Sends a served record for each unique host in a service.

{
"specversion": "1.0",
"type": "church.online.service.served",
"source": "https://live.example.church",
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"time": "2018-04-05T17:31:00Z",
"datacontenttype": "application/json",
"dataschema": "https://developers.online.church/docs/cloudevents/spec/service",
"data": {
"user": {
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"firstName": "Joe",
"lastName": "Test",
"email": "[email protected]",
"nickname": "Joe T.",
"role": null,
"meta": {
"externalId": "auth0:12345"
}
},
"service": {
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"scheduleTime": "2018-04-05T17:31:00Z"
},
"totalTimeServed": 123456
}
}

church.online.service.chatted

Sends a chatted event to determine engagement in chat channels.

{
"specversion": "1.0",
"type": "church.online.service.chatted",
"source": "https://live.example.church",
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"time": "2018-04-05T17:31:00Z",
"datacontenttype": "application/json",
"dataschema": "https://developers.online.church/docs/cloudevents/spec/service",
"data": {
"user": {
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"firstName": "Joe",
"lastName": "Test",
"email": "[email protected]",
"nickname": "Joe T.",
"role": null,
"meta": {
"externalId": "auth0:12345"
}
},
"service": {
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"scheduleTime": "2018-04-05T17:31:00Z"
},
"channels": [
{
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"key": "chat.public.16e8d84c-282e-48e2-9114-6ce02b5c2104",
"type": "public",
"messageCount": 3
},
{
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"key": "chat.prayer.16e8d84c-282e-48e2-9114-6ce02b5c2104",
"type": "prayer",
"messageCount": 12
}
]
}
}

User Events

church.online.user.created

Sent when a user signs up for a new account.

{
"specversion": "1.0",
"type": "church.online.user.created",
"source": "https://live.example.church",
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"time": "2018-04-05T17:31:00Z",
"datacontenttype": "application/json",
"dataschema": "https://developers.online.church/docs/cloudevents/spec/user",
"data": {
"user": {
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"firstName": "Joe",
"lastName": "Test",
"email": "[email protected]",
"nickname": "Joe T.",
"role": null,
"meta": {
"externalId": "auth0:12345"
}
},
"timestamp": "2018-04-05T17:31:00Z"
}
}

church.online.user.updated

Sent when a user updates their profile.

{
"specversion": "1.0",
"type": "church.online.user.updated",
"source": "https://live.example.church",
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"time": "2018-04-05T17:31:00Z",
"datacontenttype": "application/json",
"dataschema": "https://developers.online.church/docs/cloudevents/spec/user",
"data": {
"user": {
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"firstName": "Joe",
"lastName": "Test",
"email": "[email protected]",
"nickname": "Joe T.",
"role": null,
"meta": {
"externalId": "auth0:12345"
}
},
"timestamp": "2018-04-05T17:31:00Z"
}
}

church.online.user.deleted

Sent when a user account is deleted.

{
"specversion": "1.0",
"type": "church.online.user.deleted",
"source": "https://live.example.church",
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"time": "2018-04-05T17:31:00Z",
"datacontenttype": "application/json",
"dataschema": "https://developers.online.church/docs/cloudevents/spec/user",
"data": {
"user": {
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"firstName": "Joe",
"lastName": "Test",
"email": "[email protected]",
"nickname": "Joe T.",
"role": null,
"meta": {
"externalId": "auth0:12345"
}
},
"timestamp": "2018-04-05T17:31:00Z"
}
}

church.online.user.muted

Sent when a user is muted.

{
"specversion": "1.0",
"type": "church.online.user.muted",
"source": "https://live.example.church",
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"time": "2018-04-05T17:31:00Z",
"datacontenttype": "application/json",
"dataschema": "https://developers.online.church/docs/cloudevents/spec/user",
"data": {
"user": {
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"firstName": "Joe",
"lastName": "Test",
"email": "[email protected]",
"nickname": "Joe T.",
"role": null,
"meta": {
"externalId": "auth0:12345"
}
},
"timestamp": "2018-04-05T17:31:00Z"
}
}

Moment Events

church.online.moment.interacted

Sent when a user interacts with the primary action of a Moment. For example, raising their hand for salvation or interacting with a Connect moment.

{
"specversion": "1.0",
"type": "church.online.moment.interacted",
"source": "https://live.example.church",
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"time": "2018-04-05T17:31:00Z",
"datacontenttype": "application/json",
"dataschema": "https://developers.online.church/docs/cloudevents/spec/moment",
"data": {
"user": {
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"firstName": "Joe",
"lastName": "Test",
"email": "[email protected]",
"nickname": "Joe T.",
"role": null,
"meta": {
"externalId": "auth0:12345"
}
},
"service": {
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"scheduleTime": "2018-04-05T17:31:00Z"
},
"moment": {
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"type": "SALVATION",
"options": {
"salvationMomentFollowUpType": "PRAYER"
}
},
"timestamp": "2018-04-05T17:31:00Z"
}
}

church.online.moment.shared

Sent when a user shares a Moment.

{
"specversion": "1.0",
"type": "church.online.moment.shared",
"source": "https://live.example.church",
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"time": "2018-04-05T17:31:00Z",
"datacontenttype": "application/json",
"dataschema": "https://developers.online.church/docs/cloudevents/spec/moment",
"data": {
"user": {
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"firstName": "Joe",
"lastName": "Test",
"email": "[email protected]",
"nickname": "Joe T.",
"role": null,
"meta": {
"externalId": "auth0:12345"
}
},
"service": {
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"scheduleTime": "2018-04-05T17:31:00Z"
},
"moment": {
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"type": "QUOTE",
"options": {
"text": "Whoever Finds God, Finds Life!",
"attribution": ""
}
},
"timestamp": "2018-04-05T17:31:00Z"
}
}

church.online.moment.liked

Sent when a user likes a Moment.

{
"specversion": "1.0",
"type": "church.online.moment.liked",
"source": "https://live.example.church",
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"time": "2018-04-05T17:31:00Z",
"datacontenttype": "application/json",
"dataschema": "https://developers.online.church/docs/cloudevents/spec/moment",
"data": {
"user": {
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"firstName": "Joe",
"lastName": "Test",
"email": "[email protected]",
"nickname": "Joe T.",
"role": null,
"meta": {
"externalId": "auth0:12345"
}
},
"service": {
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"scheduleTime": "2018-04-05T17:31:00Z"
},
"moment": {
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"type": "QUOTE",
"options": {
"text": "Whoever Finds God, Finds Life!",
"attribution": ""
}
},
"timestamp": "2018-04-05T17:31:00Z"
}
}

Prayer Events

church.online.prayer.requested

Sent when a user requests prayer.

{
"specversion": "1.0",
"type": "church.online.prayer.requested",
"source": "https://live.example.church",
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"time": "2018-04-05T17:31:00Z",
"datacontenttype": "application/json",
"dataschema": "https://developers.online.church/docs/cloudevents/spec/prayer",
"data": {
"user": {
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"firstName": "Joe",
"lastName": "Test",
"email": "[email protected]",
"nickname": "Joe T.",
"role": null,
"meta": {
"externalId": "auth0:12345"
}
},
"service": {
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"scheduleTime": "2018-04-05T17:31:00Z"
},
"channel": {
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"key": "chat.prayer.16e8d84c-282e-48e2-9114-6ce02b5c2104",
"type": "prayer"
},
"timestamp": "2018-04-05T17:31:00Z"
}
}

church.online.prayer.accepted

Sent when a host accepts a prayer request.

{
"specversion": "1.0",
"type": "church.online.prayer.accepted",
"source": "https://live.example.church",
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"time": "2018-04-05T17:31:00Z",
"datacontenttype": "application/json",
"dataschema": "https://developers.online.church/docs/cloudevents/spec/prayer",
"data": {
"user": {
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"firstName": "Joe",
"lastName": "Test",
"email": "[email protected]",
"nickname": "Joe T.",
"role": null,
"meta": {
"externalId": "auth0:12345"
}
},
"service": {
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"scheduleTime": "2018-04-05T17:31:00Z"
},
"channel": {
"id": "16e8d84c-282e-48e2-9114-6ce02b5c2104",
"key": "chat.prayer.16e8d84c-282e-48e2-9114-6ce02b5c2104",
"type": "prayer"
},
"timestamp": "2018-04-05T17:31:00Z"
}
}

How To Set Up Webhooks

Currently, setting up Webhooks requires developer support to create a custom connection between the Church Online Platform and your ChMS.

We recommend working with a developer familiar with your systems. You can manage your webhooks in Admin > Integrations > Webhook Integrations.

Troubleshooting

Webhook Delays

Webhook data may take up to 24–48 hours to appear in your connected systems.

Workaround: Allow time for delivery before troubleshooting.

Delete Old Webhooks

Occasionally, outdated webhook entries cannot be deleted in the admin panel.

Workaround: If this becomes an issue, contact support. We can remove them manually, though this may take several days to a few weeks.


How did we do?


Powered by HelpDocs (opens in a new tab)