Webhook FAQs
Last updated: October 7, 2024
What's the timeout threshold on webhooks?
Lumos will wait 15 seconds for a webhook to respond before considering it a timeout.
Webhooks do not retry, so a timed-out request is considered failed/unsuccessful in Lumos, even if the workflow or process succeeds in the service provider for each retry.
When a webhook times out for a provisioning webhook, Lumos will still try to assign the employee for whom access was requested to any IdP apps or IdP/email groups that are associated with the request. See📄 Provisioning Webhooks
After trying to add the user to the IdP/email groups, Lumos will always create a manual provisioning task that needs to be acted on by the App Admins, since it is assumed that some part of the provisioning workflow failed and needs manual action. See📄 Confirming Provisioning For Access Requests
Can we modify the content of the webhook payload?
This is not supported today. The fields and format of a webhook payload are static and cannot be modified when you create the webhook.
Are custom intake fields sent in webhooks?
Yes! Custom intake fields that you add to an application will be sent as part of the webhook payload today. This includes request validation, pre-approval, provisioning, and deprovisioning webhooks.
If the app does not have custom intake fields configured, this will send as:
"custom_fields": NoneAre custom attributes sent in webhooks?
Custom attributes that you map to a user are not sent as part of the webhook payload today.
What is the format of the webhook payload?
Please note that the Permission source will always be one of the following values:
MICROSOFT_OAUTH
MICROSOFT_GCC
GSUITE_OAUTH = "GSUITE_OAUTH"
OKTA
MANUAL
ONELOGIN
ATLASSIAN
GOOGLE_CLOUD
LUMOS_INTEGRATION
JUMPCLOUD
{
"application": {
"type": "object",
"properties": {
"app_id": {
"type": "string"
},
"instance_id": {
"type": "string"
},
"user_friendly_label": {
"type": "string"
}
}
},
"permissions": {
"type": "array",
"properties": {
"label": {
"type": "string"
},
"value": {
"type": "string"
},
"type": {
"type": "string"
},
"source": {
"type": "string"
}
}
},
"target_user": {
"type": "array",
"properties": {
"email": {
"type": "string"
},
"given_name": {
"type": "string"
},
"family_name": {
"type": "string"
}
}
},
"access_length": {
"type": "string, integer",
"description": "The length of access in seconds"
},
"request_comment": {
"type": "string"
},
"request_task_url": {
"type": "string"
},
"custom_fields": {
"type": "Optional[dict]"
}
}