Tailscale
Also an agent toolTailscale: manage your tailnet's devices (authorize, tag, rename, set routes, expire keys, delete), edit the ACL policy file (get/update/preview/validate), create and revoke auth keys, configure DNS (nameservers, MagicDNS preferences, search paths, split DNS), read and update tailnet settings, manage users (approve, suspend, restore, delete, update role) and account contacts, handle device and user invites, and manage webhook endpoints. Bearer API access-token auth against api.tailscale.com/api/v2, scoped to a configurable tailnet. Change notifications use polling on the device list (Tailscale's native webhook signature is a timestamped composite HMAC that Zervanor cannot yet verify natively — see compatibility).
58 actions · 16 triggers
The Tailscale integration lets you connect Tailscale to your automations with 58 actions and 16 triggers — and every action is also a tool an AI agent can call. Examples: List Devices, Get Device, Delete Device, Authorize Device, Set Device Tags. No blank-canvas wiring — connect it and use it in your workflows.
Every action below is also a tool an AI agent can call — the same pack powers your workflows and your agents.
Triggers 16
Events in Tailscale that can start a workflow.
Node Created
Fires on the Tailscale `nodeCreated` webhook event.
Node Approved
Fires on the Tailscale `nodeApproved` webhook event.
Node Needs Approval
Fires on the Tailscale `nodeNeedsApproval` webhook event.
Node Deleted
Fires on the Tailscale `nodeDeleted` webhook event.
Node Key Expired
Fires on the Tailscale `nodeKeyExpired` webhook event.
Node Key Expiring In One Day
Fires on the Tailscale `nodeKeyExpiringInOneDay` webhook event.
Node Needs Signature
Fires on the Tailscale `nodeNeedsSignature` webhook event.
Node Signed
Fires on the Tailscale `nodeSigned` webhook event.
User Created
Fires on the Tailscale `userCreated` webhook event.
User Approved
Fires on the Tailscale `userApproved` webhook event.
User Needs Approval
Fires on the Tailscale `userNeedsApproval` webhook event.
User Role Updated
Fires on the Tailscale `userRoleUpdated` webhook event.
Policy Updated
Fires on the Tailscale `policyUpdate` webhook event.
Exit Node IP Forwarding Not Enabled
Fires on the Tailscale `exitNodeIPForwardingNotEnabled` webhook event.
Subnet IP Forwarding Not Enabled
Fires on the Tailscale `subnetIPForwardingNotEnabled` webhook event.
New Tailscale devices (polled)
Polls GET /tailnet/{tailnet}/devices and emits devices not seen on the previous poll. Dedupe by device id.
Actions 58
What Zervanor can do in Tailscale.
Device14
Get Device
Retrieve a single device's details (GET /device/{deviceId}). Optional 'fields' controls detail level.
Delete Device
Remove a device from the tailnet (DELETE /device/{deviceId}).
Authorize Device
Authorize or de-authorize a device on a tailnet that requires device approval (POST /device/{deviceId}/authorized).
Set Device Tags
Replace a device's ACL tags (POST /device/{deviceId}/tags). Tags must be defined in the tailnet policy file.
Set Device Key
Update key-management attributes for a device, e.g. disable key expiry (POST /device/{deviceId}/key).
Set Device IPv4 Address
Set the Tailscale IPv4 address for a device (POST /device/{deviceId}/ip).
Expire Device Key
Immediately expire a device's node key, forcing re-authentication (POST /device/{deviceId}/expire).
Get Device Routes
List a device's advertised and enabled subnet routes (GET /device/{deviceId}/routes).
Set Device Routes
Set the enabled subnet routes for a device (POST /device/{deviceId}/routes).
Get Device Posture Attributes
Retrieve the custom posture attributes set on a device (GET /device/{deviceId}/attributes).
Set Device Posture Attribute
Set a single custom posture attribute on a device (POST /device/{deviceId}/attributes/{attributeKey}).
Delete Device Posture Attribute
Remove a custom posture attribute from a device (DELETE /device/{deviceId}/attributes/{attributeKey}).
List Device Invites
List share invites for a device (GET /device/{deviceId}/device-invites).
Create Device Invites
Create share invites for a device (POST /device/{deviceId}/device-invites).
Dns9
Get DNS Nameservers
Get the tailnet's global DNS nameservers (GET /tailnet/{tailnet}/dns/nameservers).
Set DNS Nameservers
Replace the tailnet's global DNS nameservers (POST /tailnet/{tailnet}/dns/nameservers).
Get DNS Preferences
Get the tailnet's DNS preferences, including whether MagicDNS is enabled (GET /tailnet/{tailnet}/dns/preferences).
Set DNS Preferences
Set the tailnet's DNS preferences, e.g. enable or disable MagicDNS (POST /tailnet/{tailnet}/dns/preferences).
Get DNS Search Paths
Get the tailnet's DNS search paths (GET /tailnet/{tailnet}/dns/searchpaths).
Set DNS Search Paths
Replace the tailnet's DNS search paths (POST /tailnet/{tailnet}/dns/searchpaths).
Get Split DNS
Get the tailnet's split-DNS configuration (GET /tailnet/{tailnet}/dns/split-dns): per-domain nameserver mappings.
Update Split DNS
Partially update the tailnet's split-DNS mappings (PATCH /tailnet/{tailnet}/dns/split-dns). Only the provided domains are changed.
Set Split DNS
Replace the tailnet's entire split-DNS configuration (PUT /tailnet/{tailnet}/dns/split-dns).
Users7
List Users
List the users of the tailnet (GET /tailnet/{tailnet}/users). Optional type and role filters.
Get User
Retrieve a single user's details (GET /users/{userId}).
Approve User
Approve a user who is awaiting approval to join the tailnet (POST /users/{userId}/approve).
Suspend User
Suspend a user, blocking their access to the tailnet (POST /users/{userId}/suspend).
Restore User
Restore a previously suspended user (POST /users/{userId}/restore).
Delete User
Remove a user from the tailnet (POST /users/{userId}/delete).
Update User Role
Change a user's role in the tailnet (POST /users/{userId}/role).
Webhooks7
List Webhooks
List the webhook endpoints configured for the tailnet (GET /tailnet/{tailnet}/webhooks).
Create Webhook
Create a webhook endpoint for the tailnet (POST /tailnet/{tailnet}/webhooks). Choose the destination URL, provider type, and event subscriptions. Note: Tailscale's delivery signature is not natively verifiable by Zervanor — use the device-list polling trigger for reliable change notifications.
Get Webhook
Retrieve a webhook endpoint by id (GET /webhooks/{endpointId}).
Update Webhook
Update a webhook endpoint's event subscriptions (PATCH /webhooks/{endpointId}).
Delete Webhook
Delete a webhook endpoint (DELETE /webhooks/{endpointId}).
Test Webhook
Queue a test event to a webhook endpoint (POST /webhooks/{endpointId}/test).
Rotate Webhook Secret
Rotate the signing secret of a webhook endpoint (POST /webhooks/{endpointId}/rotate).
User Invites5
List User Invites
List the tailnet's pending user invites (GET /tailnet/{tailnet}/user-invites).
Create User Invites
Create one or more user invites for the tailnet (POST /tailnet/{tailnet}/user-invites).
Get User Invite
Retrieve a single user invite by id (GET /user-invites/{userInviteId}).
Resend User Invite
Resend a user invite email (POST /user-invites/{userInviteId}/resend).
Delete User Invite
Delete (revoke) a user invite (DELETE /user-invites/{userInviteId}).
Acl4
Get ACL Policy File
Retrieve the tailnet's ACL policy file (GET /tailnet/{tailnet}/acl). Returns HuJSON or JSON depending on the Accept header.
Update ACL Policy File
Replace the tailnet's ACL policy file (POST /tailnet/{tailnet}/acl). Body is the full policy (ACLs, groups, tagOwners, autoApprovers, etc.).
Preview ACL Rule Matches
Preview which devices a proposed ACL policy would let a user or IP reach (POST /tailnet/{tailnet}/acl/preview). Does not apply the policy.
Validate ACL Policy File
Validate and test a proposed ACL policy file without applying it (POST /tailnet/{tailnet}/acl/validate). Returns errors and test results.
Keys4
List Keys
List the auth keys and API access tokens for the tailnet (GET /tailnet/{tailnet}/keys).
Create Auth Key
Create a new auth key (POST /tailnet/{tailnet}/keys). Set capabilities (reusable, ephemeral, preauthorized, tags), expiry, and description.
Get Key
Retrieve metadata for a single auth key or API access token (GET /tailnet/{tailnet}/keys/{keyId}).
Delete Key
Delete an auth key or API access token, invalidating it (DELETE /tailnet/{tailnet}/keys/{keyId}).
Device Invites3
Get Device Invite
Retrieve a single device invite by id (GET /device-invites/{deviceInviteId}).
Resend Device Invite
Resend a device invite email (POST /device-invites/{deviceInviteId}/resend).
Delete Device Invite
Delete (revoke) a device invite (DELETE /device-invites/{deviceInviteId}).
Contacts2
Get Contacts
Get the tailnet's account, support, and security contact preferences (GET /tailnet/{tailnet}/contacts).
Update Contact
Update one of the tailnet's contact types (PATCH /tailnet/{tailnet}/contacts/{contactType}). Changing the email triggers a verification message.
Settings2
Get Tailnet Settings
Get the tailnet's settings, e.g. device-approval and key-duration policies (GET /tailnet/{tailnet}/settings).
Update Tailnet Settings
Update the tailnet's settings (PATCH /tailnet/{tailnet}/settings), e.g. toggle device approval or set the maximum key duration.
Devices1
List Devices
List every device in the tailnet (GET /tailnet/{tailnet}/devices). Optional 'fields' controls the level of detail. Identity + connectivity probe, and the polling source for device-lifecycle change notifications.
Nothing matches your search.
Automations using Tailscale
Build your own automation with Tailscale in the visual builder.
Frequently asked questions
What can I automate with Tailscale?
58 actions are available — for example: List Devices, Get Device, Delete Device, Authorize Device, Set Device Tags, and more.
Which Tailscale events can start a workflow?
16 triggers — for example: Node Created, Node Approved, Node Needs Approval, Node Deleted.
Can Tailscale be used as an AI agent tool?
Yes. Every Tailscale action automatically becomes a tool an AI agent can call — the same pack powers both your workflows and your agents.
How is the Tailscale integration modelled?
Tailscale is modelled as a versioned connector pack, and the steps that need reasoning fall to first-party agents hosted in the same runtime as the workflows.