Webhooks
Webhooks allow you to receive real-time notifications when important events happen in your Connexify account. By configuring webhooks, you can automatically trigger actions in your other systems and keep everything in sync.
How it works
- You configure a webhook URL in under integrations
- When an event occurs (like a successful client onboarding), Connexify sends a POST request to your URL
- Your system receives the webhook payload with details about the event
- You can then process this data and take appropriate actions in your systems
Creating a Webhook
To create a webhook:
- Go to Integrations
- Select a name
- Enter your webhook URL
- Click "Create"
Viewing Webhook Logs
You can view the history and status of webhook deliveries:
- Go to Integrations
- Find your webhook
- Click the icon "Show Webhook Logs"
This shows you the request/response details and delivery status for each webhook attempt.
Viewing Webhook Details
Want the full data? No problem:
- Select a Webhook Log entry and click the magnifier icon
- You’ll see the exact data we sent and the response we got back from your system
Available Events
Currently, we support webhooks for:
- ✅ Client successfully onboarded
More events are on the way!
Webhook Format
Webhooks are sent as JSON as POST request and include:
- Link details
- Client info (ID, connected accounts, and any failed connections with details)
Webhook requests are asyncronous and will be send in the background to not interrupt the client onboarding. It will take a few minutes before you can see the response in the Webhook Logs.
Example Request Data
{
"link": {
"id": "1cb19ae8-affb-46d0-baee-4b537116c244",
"key": "your-link",
"name": "Your Link"
},
"client": {
"id": "b7cbc0e9-7399-47d6-8a87-6810da8f2758",
"createdAt": "2025-06-06T22:01:16.934859+00:00",
"permissions": {
"meta": {
"pages": {
"account": [
{
"label": "Pages Label",
"value": "9219215509404"
}
],
"response": [
{
"status": 400,
"account": "9219215509404",
"message": "You are trying to assign a duplicated asset to this agency."
}
],
"extraCredentials": {
"businessId": "1865288888"
}
},
"productCatalog": {
"account": [
{
"label": "Product Catalog Label",
"value": "79054"
}
],
"response": [
{
"status": 200,
"account": "79054",
"message": "Success"
}
],
"extraCredentials": {
"businessId": "1865242520615221"
}
}
},
"google": {
"analytics": {
"account": [
{
"label": "My App",
"value": "accounts/1234",
"disabled": false
}
],
"response": [
{
"data": {
"accessBindings": [
{
"name": "accounts/1234/accessBindings/AYVX2exe2FIcYvAQFXY5DHcJOthXvn3I_qtT",
"user": "user@gmail.com",
"roles": [
"predefinedRoles/admin"
]
}
]
},
"status": 200,
"account": "accounts/1234",
"message": "OK"
}
]
}
"ads": {
"account": [
{
"label": "google ads label (1234567890)",
"value": "customers/1234567890",
"disabled": false
}
],
"response": [
{
"data": {
"responseDataPermission": {
"data": {
"result": {
"resourceName": "customers/1234567890/customerClientLinks/78787878~525252525"
}
},
"status": 200,
"message": "OK"
},
"responseAcceptPermission": {
"data": {
"error": {
"code": 401,
"status": "UNAUTHENTICATED",
"details": [
{
"@type": "type.googleapis.com/google.ads.googleads.v19.errors.GoogleAdsFailure",
"errors": [
{
"message": "An account administrator changed this account's authentication settings. To access this Google Ads account, enable 2-Step Verification in your Google account at https://www.google.com/landing/2step.",
"errorCode": {
"authenticationError": "TWO_STEP_VERIFICATION_NOT_ENROLLED"
}
}
],
"requestId": "809OIJNMXTKfxxx"
}
],
"message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project."
}
},
"status": 401,
"message": "Unauthorized"
}
},
"status": 401,
"message": "An account administrator changed this account's authentication settings. To access this Google Ads account, enable 2-Step Verification in your Google account at https://www.google.com/landing/2step."
}
]
}
},
"others": {
"youtubeStudio": {
"extraCredentials": {
"channelId": "12345t"
}
},
"storeCollaborator": {
"extraCredentials": {
"storeUrl": "www.google.de",
"collaboratorCode": "1234567"
}
}
}
},
"permissionGrantedAt": "2025-06-06T22:01:46.159Z"
}
}
Webhook Response
When a webhook is triggered, we store the response status code and response body (JSON/text) without any additional validation. This allows you to inspect the raw response data later through our Webhook Details.