Workflows
Blocks
Integrations
Azure Storage

Azure Storage Action Block

What it does: Manage blobs and containers in Azure Blob Storage directly from your workflow automation.

📦

In simple terms: Automate cloud storage operations -- upload, download, list, and delete files (blobs) and organize them in containers within Azure Storage.

When to Use This

Use the Azure Storage action when you need to:

  • ✅ Upload files generated by your workflow to Azure Blob Storage
  • ✅ Download blobs for processing in subsequent workflow steps
  • ✅ Organize blobs into containers based on workflow logic
  • ✅ List and manage blobs in containers programmatically
  • ✅ Clean up temporary storage by deleting blobs or containers

Example: When a document is processed by your workflow, upload the output PDF to an Azure Storage container organized by date and customer.

Features

  • Shared Key Authentication: Connect using your storage account name and access key
  • Blob Operations: Create, retrieve, list, and delete blobs
  • Container Management: Create, retrieve, list, and delete containers
  • Variable Support: Use workflow variables for dynamic blob names and paths
  • Multiple Blob Types: Support for block blobs, append blobs, and page blobs

Setup

1. Get Your Azure Storage Credentials

  1. Go to the Azure Portal and navigate to your Storage Account
  2. Open Security + networking > Access keys
  3. Copy the Storage account name and Key (key1 or key2)

2. Connect in Indite

  1. Open the Azure Storage block settings
  2. Enter your Account Name (e.g., mystorageaccount)
  3. Enter your Access Key
⚠️

The storage access key provides full access to all data in your storage account. Handle it with the same care as a password. Consider creating a dedicated storage account for workflow operations to limit the blast radius.

3. Configure the Action

  1. Select the desired Action from the dropdown
  2. Specify the Container Name for blob operations
  3. Fill in action-specific fields (blob name, content, etc.)

Supported Actions

Blob Operations

ActionDescription
Create BlobUpload a new blob (file) to a container
Get BlobDownload a blob's content by name
Get All BlobsList all blobs in a container with optional prefix filter
Delete BlobRemove a blob from a container

Container Operations

ActionDescription
Create ContainerCreate a new blob container
Get ContainerRetrieve container metadata and properties
Get All ContainersList all containers in the storage account
Delete ContainerRemove a container and all its blobs

Using Variables

You can use workflow variables in any Azure Storage field:

Blob Name (with folder-like path):

reports/{{date.year}}/{{date.month}}/{{customer.id}}-invoice.pdf

Container Name:

{{environment}}-documents

Blob Content:

{{report.generatedContent}}

Prefix Filter (Get All Blobs):

reports/{{date.year}}/{{date.month}}/

Response Mapping

Map results from Azure Storage actions to workflow variables:

Available Values (Blob Operations):

  • Blob Name: Full name/path of the blob
  • Blob URL: Public or SAS URL for the blob
  • Content: The blob's content (for Get Blob)
  • Content Type: MIME type of the blob
  • Content Length: Size in bytes
  • Last Modified: Timestamp of last modification
  • ETag: Version identifier for concurrency control

Available Values (Container Operations):

  • Container Name: Name of the container
  • Last Modified: When the container was last modified
  • Public Access Level: Current access level (private, blob, container)

Available Values (Get All Blobs/Containers):

  • Items: Array of blob or container objects
  • Count: Number of items returned

Example Mapping:

Blob URL → {{storage.blobUrl}}
Content → {{storage.content}}
Blob List → {{storage.blobs}}

Common Use Cases

1. Document Archival

Trigger: Document processing complete Azure Storage Action: Create Blob

Container: processed-documents
Blob Name: {{date.year}}/{{date.month}}/{{document.id}}.pdf
Content: {{document.processedContent}}
Content Type: application/pdf

2. Backup Workflow Data

Trigger: Schedule (Daily at midnight) Azure Storage Action: Create Blob

Container: backups
Blob Name: daily/{{date.iso}}/workflow-data.json
Content: {{aggregated.workflowData}}
Content Type: application/json

3. File Processing Pipeline

Trigger: New file notification Azure Storage Action: Get Blob

Container: incoming
Blob Name: {{notification.blobName}}

Process the content, then upload the result:

Container: processed
Blob Name: {{notification.blobName}}-processed
Content: {{processing.result}}

4. Storage Cleanup

Trigger: Schedule (Weekly) Azure Storage Action: Get All Blobs, then Delete Blob

Container: temp-files
Prefix: uploads/

Loop through blobs older than 30 days and delete them.

Best Practices

Naming Conventions

  • ✅ Use forward slashes in blob names to create virtual folder hierarchies (e.g., year/month/file.pdf)
  • ✅ Keep container names lowercase, alphanumeric, and between 3-63 characters
  • ✅ Use descriptive, deterministic blob names to avoid overwrites
  • ✅ Include timestamps or unique IDs in blob names for versioning

Performance

  • ✅ Use prefix filters in Get All Blobs to narrow results
  • ✅ Avoid listing entire containers with thousands of blobs
  • ✅ Upload blobs to the Azure region closest to your workflow engine
  • ✅ Use appropriate content types for proper browser/client handling

Cost Management

  • ✅ Delete temporary blobs after processing to reduce storage costs
  • ✅ Use the Hot tier for frequently accessed data and Cool/Archive for infrequent access
  • ✅ Monitor storage usage through Azure Cost Management
  • ✅ Set up lifecycle management policies in Azure Portal for automatic tiering

Security

  • ✅ Rotate access keys periodically through Azure Portal
  • ✅ Never log or expose the access key in workflow outputs
  • ✅ Set containers to private access level unless public access is explicitly needed
  • ✅ Use separate containers for different security classification levels

Troubleshooting

Authentication Failed

Check:

  • The account name is correct (case-sensitive, no .blob.core.windows.net suffix)
  • The access key is the full key string from Azure Portal
  • The key has not been regenerated since configuration

Blob Upload Fails

Solutions:

  • Verify the container exists (create it first if needed)
  • Check that the blob name is valid (no leading slashes, valid characters)
  • Ensure the content is not empty
  • Verify the storage account has sufficient capacity

Container Not Found

Check:

  • Container names must be lowercase (Azure enforces this)
  • The container has not been deleted (deletion can take up to 30 seconds to propagate)
  • Use Get All Containers to verify the container exists

Get Blob Returns Empty

Check:

  • The blob name matches exactly (case-sensitive)
  • Include the full path including any virtual folder prefixes
  • The blob has not been deleted by another process

Limitations

  • Blob Size: This block is optimized for blobs up to 256 MB; larger files may require chunked uploads not supported by this block
  • Access Tiers: Tier management (Hot, Cool, Archive) cannot be set through this block
  • SAS Tokens: Generating Shared Access Signature URLs is not supported -- use access keys only
  • Blob Snapshots: Creating or managing blob snapshots is not available
  • Static Website: Static website hosting configuration cannot be managed through this block
  • API Rate Limits: Azure Storage has per-account request rate limits
💡

Tip: Use virtual folder paths in blob names (e.g., data/2024/01/file.csv) to organize your storage logically -- then use prefix filters in Get All Blobs to list only blobs in a specific "folder."

Related Blocks

  • Azure Cosmos DB: Store structured data alongside blob storage
  • OneDrive: Alternative file storage for Microsoft 365 users
  • Condition: Add logic before storage operations
  • Loop: Iterate over blob lists for batch processing
  • Set Variable: Prepare blob names and content dynamically
Indite Documentation v1.6.0
PrivacyTermsSupport