Skip to content

Hetzner Cloud

Create and delete Hetzner Cloud servers/load balancers, manage snapshots, and interact with Hetzner Object Storage via the S3-compatible API

API Token: Create a token in Hetzner Cloud Console → Project → Security → API Tokens. Use Read & Write scope.

Object Storage (optional): To use S3 components, go to Object Storage in the Hetzner Cloud Console and create S3 credentials (Access Key + Secret Key). Set the region to match your bucket location (e.g. fsn1 or nbg1).

Component key: hetzner.createBucket

Creates a new bucket in Hetzner Object Storage using the S3-compatible API.

S3 credentials (Access Key ID, Secret Access Key, and Region) must be configured on the Hetzner integration.

  • Bucket: The name of the bucket to create (supports expressions).

Emits the bucket name, region, and S3 endpoint on the default channel.

{
"data": {
"bucket": "my-artifacts",
"endpoint": "https://fsn1.your-objectstorage.com/my-artifacts",
"region": "fsn1"
},
"timestamp": "2024-01-15T10:30:00Z",
"type": "hetzner.bucket.created"
}

Component key: hetzner.createLoadBalancer

The Create Load Balancer component creates a load balancer in Hetzner Cloud.

  1. Creates a load balancer with the specified name, type, location, and algorithm via the Hetzner API
  2. Emits the created load balancer details on the default output channel
  • Name: The name for the new load balancer (supports expressions)
  • Type: The load balancer type (e.g. lb11, lb21, lb31)
  • Location: The location where the load balancer will be created
  • Algorithm: The load balancing algorithm — Round Robin (default) or Least Connections
{
"data": {
"id": "12345",
"name": "my-load-balancer",
"status": "running"
},
"timestamp": "2024-01-15T10:30:00Z",
"type": "hetzner.load_balancer.created"
}

Component key: hetzner.createServer

The Create Server component creates a new server in Hetzner Cloud and waits for the create action to complete.

  1. Creates a server with the given name, server type, image (system image or snapshot), and optional location/SSH keys/user data
  2. Polls the Hetzner API until the create action finishes
  3. Emits the server details on the default output when ready. If creation fails, the execution errors.
  • Name: Server name (supports expressions)
  • Server type: e.g. cx11, cpx11, cax11
  • Image: System image or snapshot image ID
  • Location (optional): e.g. fsn1, nbg1, hel1
  • SSH keys (optional): List of SSH key names or IDs
  • Firewall (optional): Attach an existing firewall to the server
  • User data (optional): Cloud-init user data
{
"data": {
"created": "2024-01-15T10:30:00+00:00",
"id": 42,
"name": "my-server",
"publicIp": "1.2.3.4",
"status": "running"
},
"timestamp": "2024-01-15T10:30:00Z",
"type": "hetzner.server.created"
}

Component key: hetzner.createSnapshot

The Create Snapshot component creates a snapshot image from an existing Hetzner Cloud server and waits for completion.

  1. Calls the Hetzner API to create a snapshot from the selected server
  2. Polls the action until snapshot creation finishes
  3. Emits snapshot details (including image ID) on success. If creation fails, the execution errors.
  • Server: Existing server to snapshot
  • Snapshot name (optional): Snapshot description/name in Hetzner Cloud
{
"data": {
"actionId": "12345",
"imageId": 67890,
"imageType": "snapshot",
"serverId": "42",
"snapshotName": "workflow-snapshot"
},
"timestamp": "2024-01-15T10:30:00Z",
"type": "hetzner.snapshot.created"
}

Component key: hetzner.deleteBucket

Deletes a bucket from Hetzner Object Storage using the S3-compatible API.

S3 credentials (Access Key ID, Secret Access Key, and Region) must be configured on the Hetzner integration. The bucket must be empty before it can be deleted.

  • Bucket: The bucket to delete (dropdown or expression).

Emits the deleted bucket name on the default channel.

{
"data": {
"bucket": "my-artifacts"
},
"timestamp": "2024-01-15T10:30:00Z",
"type": "hetzner.bucket.deleted"
}

Component key: hetzner.deleteLoadBalancer

The Delete Load Balancer component deletes a load balancer in Hetzner Cloud.

  1. Deletes the selected load balancer via the Hetzner API
  2. Emits on the default output when the load balancer is deleted. If deletion fails, the execution errors.
{
"data": {
"loadBalancerId": "12345"
},
"timestamp": "2024-01-15T10:30:00Z",
"type": "hetzner.load_balancer.deleted"
}

Component key: hetzner.deleteObject

Deletes an object from a Hetzner Object Storage bucket using the S3-compatible API.

S3 credentials (Access Key ID, Secret Access Key, and Region) must be configured on the Hetzner integration.

  • Bucket: The bucket containing the object (dropdown or expression).
  • Key: The object key to delete (supports expressions).

Emits the bucket and key on the default channel.

{
"data": {
"bucket": "my-artifacts",
"key": "releases/v1.0.0/app.tar.gz"
},
"timestamp": "2024-01-15T10:30:00Z",
"type": "hetzner.object.deleted"
}

Component key: hetzner.deleteServer

The Delete Server component deletes a server in Hetzner Cloud and waits for the delete action to complete.

  1. Deletes the selected server via the Hetzner API
  2. Polls the API until the delete action finishes
  3. Emits on the default output when the server is deleted. If deletion fails, the execution errors.
{
"data": {
"actionId": 123,
"serverId": 42
},
"timestamp": "2024-01-15T10:30:00Z",
"type": "hetzner.server.deleted"
}

Component key: hetzner.deleteSnapshot

The Delete Snapshot component deletes a snapshot image in Hetzner Cloud.

  1. Deletes the selected snapshot via the Hetzner API
  2. Emits on the default output when the snapshot is deleted. If deletion fails, the execution errors.
{
"data": {
"imageId": "67890"
},
"timestamp": "2024-01-15T10:30:00Z",
"type": "hetzner.snapshot.deleted"
}

Component key: hetzner.listObjects

Lists objects in a Hetzner Object Storage bucket using the S3-compatible API.

S3 credentials (Access Key ID, Secret Access Key, and Region) must be configured on the Hetzner integration.

  • Bucket: The bucket to list (dropdown or expression).
  • Prefix (optional): Filter objects by key prefix (supports expressions). Example: artifacts/
  • Max Keys (optional): Maximum number of objects to return. Defaults to 100.

Emits the bucket, prefix, an array of objects (each with key, size, lastModified, etag), count, and a truncated flag on the default channel. When truncated is true, more objects exist beyond maxKeys; narrow the prefix or increase Max Keys to see them.

{
"data": {
"bucket": "my-artifacts",
"count": 2,
"objects": [
{
"etag": "\"d41d8cd98f00b204e9800998ecf8427e\"",
"key": "releases/v1.2.3/app.tar.gz",
"lastModified": "2024-03-15T10:30:00.000Z",
"size": 4096000
},
{
"etag": "\"5d41402abc4b2a76b9719d911017c592\"",
"key": "releases/v1.2.2/app.tar.gz",
"lastModified": "2024-03-01T08:15:00.000Z",
"size": 3921000
}
],
"prefix": "releases/",
"truncated": false
},
"timestamp": "2024-03-15T10:30:00Z",
"type": "hetzner.objects.listed"
}

Component key: hetzner.presignedUrl

Generates a time-limited presigned URL for a Hetzner Object Storage object using the S3-compatible API.

S3 credentials (Access Key ID, Secret Access Key, and Region) must be configured on the Hetzner integration.

  • Bucket: The bucket containing the object (dropdown or expression).
  • Key: The object key (supports expressions).
  • Expires In (optional): URL expiry in seconds. Defaults to 3600 (1 hour).
  • Method: The HTTP method the presigned URL allows — GET (download) or PUT (upload).

Emits the bucket, key, the presigned URL, and the expiry timestamp (ISO 8601) on the default channel.

  • Share a generated report or artifact with an external system via Slack/email without exposing credentials.
  • Allow an external agent to upload a file to a specific bucket/key without permanent access.
{
"data": {
"bucket": "my-artifacts",
"expiresAt": "2024-03-15T11:30:00Z",
"key": "releases/v1.2.3/app.tar.gz",
"url": "https://fsn1.your-objectstorage.com/my-artifacts/releases/v1.2.3/app.tar.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256\u0026X-Amz-Credential=...\u0026X-Amz-Date=...\u0026X-Amz-Expires=3600\u0026X-Amz-SignedHeaders=host\u0026X-Amz-Signature=..."
},
"timestamp": "2024-03-15T10:30:00Z",
"type": "hetzner.object.presigned"
}

Component key: hetzner.uploadObject

Uploads content to an object in a Hetzner Object Storage bucket using the S3-compatible API.

S3 credentials (Access Key ID, Secret Access Key, and Region) must be configured on the Hetzner integration.

  • Bucket: The target bucket (dropdown or expression).
  • Key: The object key / path within the bucket (supports expressions). Example: artifacts/{{ $.run.id }}.json
  • Content: The content to upload (expression). Strings are uploaded as-is; objects/arrays are JSON-serialized automatically.
  • Content Type (optional): MIME type for the object. Defaults to application/octet-stream.

Emits the bucket, key, size in bytes, and ETag on the default channel.

{
"data": {
"bucket": "my-artifacts",
"etag": "\"d41d8cd98f00b204e9800998ecf8427e\"",
"key": "releases/v1.2.3/app.tar.gz",
"size": 4096000
},
"timestamp": "2024-03-15T10:30:00Z",
"type": "hetzner.object.uploaded"
}