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.