Notifications
Configure granular notification controls
Twingate offers flexible options for managing how you receive various notifications from us.
Some notifications, like subscription updates and end-user notifications, are always sent via email to all admins of an account.
For other important notifications, admins can customize both the recipients and the delivery method. These notifications can be sent to specific email addresses or to a webhook, allowing for integration with your existing workflows. For details on the notifications and their payloads, see below.
Managing Notification Channels
You can manage your notification settings in the Settings section of the Admin Console.

By default, all admin email addresses on the account are listed. You can select an email address and then choose which specific notifications that email should receive.

You can also set up a webhook for specific notifications. This allows you to receive notifications in a custom way or integrate them into your own automated workflows. To configure a webhook, you’ll need to provide a webhook name, a webhook URL, and select the specific notifications you want to send to it. Selecting the Test Payload button next to a specific notification will send a sample payload to the provided webhook URL.

Slack Workflows
Use Slack Workflow Builder instead of incoming webhooks when setting up a webhook to Slack, since incoming webhooks only support JSON with plain text and Workflow Builder allows for richer formatting and more flexible workflows.
Managing Notifications
In addition to configuring notifications by channel, you can also manage them from the perspective of the notification itself.

By selecting a specific notification, you can choose which email addresses and/or webhooks should receive it.

This granular control allows you to precisely decide which notifications are sent to which users and/or webhooks, ensuring the right information reaches the right place.
Troubleshooting Webhook Errors
If you see an error when testing webhook payloads in Twingate, it means your webhook URL responded with an error. Common issues include:
- Incorrect HTTP method: Your webhook endpoint must be configured to accept POST requests. Endpoints that only support GET will return an error.
- Unsupported JSON format: The webhook must be able to receive standard JSON payloads. Some services, such as Slack’s Incoming Webhooks, only support specific formats (e.g., plain text) and may reject the payload if it doesn’t meet their requirements.
Ensure your webhook service can accept and process Twingate’s test payload format. If issues persist, refer to your webhook provider’s documentation for additional configuration requirements.
Webhook Payloads
Twingate allows you to set up webhooks for the notifications listed below. You can test webhook payloads directly in the Admin Console or view sample payloads provided here.
Access requests
{ "timestamp": "2025-07-30T17:33:10.518645+00:00", "tenant": "acme.twingate.com", "version": "1", "type": "ACCESS_REQUEST", "request_id": "QWNjZXNzUmVxdWVzdDow", "request_url": "https://acme.twingate.com/access-requests?user_id=VXNlcjow&access_request_id=QWNjZXNzUmVxdWVzdDow", "user_name": "John Doe", "user_url": "https://acme.twingate.com/users/VXNlcjow", "resource_name": "Gitlab", "resource_url": "https://acme.twingate.com/resources/UmVzb3VyY2U6MA==", "requested_at": "2025-07-30T17:33:10.518703+00:00", "reason": "This is a test access request.", "approval_mode": "MANUAL"}
Client updates recommended
{ "timestamp": "2025-07-30T17:35:09.413539+00:00", "tenant": "acme.twingate.com", "version": "1", "type": "CLIENT_UPDATE_RECOMMENDED", "message": "Client update recommended for your users", "platform": "Windows", "devices_list": "https://acme.twingate.com/devices?filters=activeState%3DACTIVE%3BosName%3DMAC_OS&sortBy=clientVersion"}
Client updates required
{ "timestamp": "2025-07-30T17:35:46.731669+00:00", "tenant": "acme.twingate.com", "version": "1", "type": "CLIENT_UPDATE_REQUIRED", "message": "Client update recommended for your users", "table": []}
Connector update available
{ "timestamp": "2025-07-30T17:37:32.964637+00:00", "tenant": "acme.twingate.com", "version": "1", "type": "CONNECTOR_UPGRADE_AVAILABLE", "message": "Connectors have new versions available", "table": []}
Connectors offline
{ "timestamp": "2025-07-30T17:43:48.498285+00:00", "tenant": "acme.twingate.com", "version": "1", "type": "CONNECTOR_STATUS_OFFLINE", "message": "Connectors are now offline", "table": []}
Connectors online
{ "timestamp": "2025-07-30T17:43:57.992304+00:00", "tenant": "acme.twingate.com", "version": "1", "type": "CONNECTOR_STATUS_ONLINE", "message": "Connectors are now back online", "table": []}
Device integration API token expiration
{ "timestamp": "2025-07-30T19:20:18.849246+00:00", "tenant": "acme.twingate.com", "version": "1", "type": "DEVICE_INTEGRATION_API_TOKEN_EXPIRATION", "integration": "CrowdStrike", "days_remaining": 7, "manage_integration": "https://acme.twingate.com/settings/device-integrations"}
Events sync errors
{ "timestamp": "2025-07-30T17:44:20.246982+00:00", "tenant": "acme.twingate.com", "version": "1", "type": "EVENTS_SYNC_ERRORS", "message": "S3 is experiencing errors", "manage_sync": "https://acme.twingate.com"}
Events sync errors resolved
{ "timestamp": "2025-07-30T17:44:34.533253+00:00", "tenant": "acme.twingate.com", "version": "1", "type": "EVENTS_SYNC_ERROR_RESOLVED", "sync_type": "S3", "message": "S3 sync errors have been resolved", "manage_sync": "https://acme.twingate.com"}
Events sync requires attention
{ "timestamp": "2025-07-30T17:44:52.949748+00:00", "tenant": "acme.twingate.com", "version": "1", "type": "EVENTS_SYNC_REQUIRES_ATTENTION", "sync_type": "S3", "message": "S3 requires attention", "manage_sync": "https://acme.twingate.com"}
Google Workspace sync error
{ "timestamp": "2025-07-30T17:45:35.768833+00:00", "tenant": "acme.twingate.com", "version": "1", "type": "GOOGLE_WORKSPACE_SYNC_ERROR", "message": "API authentication token has expired", "message_integration": "https://acme.twingate.com"}
Identity provider integration error
{ "timestamp": "2025-07-30T17:45:54.325573+00:00", "tenant": "acme.twingate.com", "version": "1", "type": "IDENTITY_PROVIDER_INTEGRATION_ERROR", "message": "Okta identity provider integration error", "integration": "Okta", "manage_integration": "https://acme.twingate.com/devices"}
Integration error resolved
{ "timestamp": "2025-07-30T17:46:05.931203+00:00", "tenant": "acme.twingate.com", "version": "1", "type": "INTEGRATION_ERROR_RESOLVED", "message": "CrowdStrike error has been resolved.", "integration": "CrowdStrike", "manage_integration": "https://acme.twingate.com"}
Integration errors
{ "timestamp": "2025-07-30T17:47:40.570121+00:00", "tenant": "acme.twingate.com", "version": "1", "type": "INTEGRATION_ERRORS", "integration": "Okta", "message": "Okta is experiencing errors", "manage_integration": "https://acme.twingate.com"}
Service Account keys expiration
{ "timestamp": "2025-07-30T17:47:41.888524+00:00", "tenant": "acme.twingate.com", "version": "1", "type": "SERVICE_ACCOUNT_KEYS_EXPIRATION", "message": "Service accounts are expiring soon", "table": [ { "service_account_name": "John Doe", "service_key": "public_key", "link": "https://link_to_service_account_in_admin_console" } ]}
Last updated 1 month ago