Redis Connector Guide

The Redis connector lets Tealfabric workflows store and retrieve low-latency key-value data for caching, session state, and workflow coordination. It is a practical choice when a process needs fast reads, short-lived values, or shared state across multiple workflow steps.

Document information
FieldValue
Canonical URL/docs/04_connecting-systems/connectors/r/redis
Version (published date)2026-05-08
Tagsconnectors, reference, redis
Connector IDredis-1.0.0

Redis connector flow showing authenticated key-value writes, typed data retrieval, and workflow-driven cache and state automation.

Configure Redis connection

Configure the connector with your Redis endpoint and access settings before adding data operations to workflows. Most deployments require host, and optionally port, password, database, and timeout_seconds based on your Redis environment.

Use consistent key naming conventions from the start, such as session:<id> or order:<id>:status, so your workflows can query predictable key patterns over time. This keeps cache and state operations maintainable as automation volume grows.

Write values with send

Use send to create or update Redis entries for workflow state, queue pointers, and temporary cache records. Include ttl for values that should expire automatically and avoid stale state.

const baseUrl = "https://api.example.com/api/v1";
const tenantId = "<TENANT_ID>";
const apiKey = "<API_KEY>";

async function storeSessionState(integrationId: string) {
  const response = await fetch(`${baseUrl}/integrations/${encodeURIComponent(integrationId)}/execute`, {
    method: "POST",
    headers: {
      "X-API-Key": apiKey,
      "X-Tenant-ID": tenantId,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      operation: "send",
      command: "set",
      key: "session:abc123",
      value: "{\"user_id\":123,\"state\":\"active\"}",
      ttl: 1800
    }),
  });
  if (!response.ok) throw new Error(`Request failed: ${response.status}`);
  return response.json();
}
curl -X POST "https://api.example.com/api/v1/integrations/<ENTITY_ID>/execute" \
  -H "X-API-Key: <API_KEY>" \
  -H "X-Tenant-ID: <TENANT_ID>" \
  -H "Content-Type: application/json" \
  -d '{
    "operation": "send",
    "command": "set",
    "key": "session:abc123",
    "value": "{\"user_id\":123,\"state\":\"active\"}",
    "ttl": 1800
  }'
{
  "success": true,
  "affected_count": 1,
  "message": "Redis write operation completed"
}

Read values with receive

Use receive when your workflow needs to load current state, fetch cached results, or inspect key groups by pattern. Keep retrieval commands explicit so downstream steps can rely on deterministic data shape.

const baseUrl = "https://api.example.com/api/v1";
const tenantId = "<TENANT_ID>";
const apiKey = "<API_KEY>";

async function readSessionState(integrationId: string) {
  const response = await fetch(`${baseUrl}/integrations/${encodeURIComponent(integrationId)}/execute`, {
    method: "POST",
    headers: {
      "X-API-Key": apiKey,
      "X-Tenant-ID": tenantId,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      operation: "receive",
      command: "get",
      key: "session:abc123"
    }),
  });
  if (!response.ok) throw new Error(`Request failed: ${response.status}`);
  return response.json();
}
curl -X POST "https://api.example.com/api/v1/integrations/<ENTITY_ID>/execute" \
  -H "X-API-Key: <API_KEY>" \
  -H "X-Tenant-ID: <TENANT_ID>" \
  -H "Content-Type: application/json" \
  -d '{
    "operation": "receive",
    "command": "get",
    "key": "session:abc123"
  }'
{
  "success": true,
  "data": "{\"user_id\":123,\"state\":\"active\"}",
  "total_size": 1
}

Reliability guidance

Most Redis connector failures come from network reachability, authentication mismatch, or inconsistent key naming across workflow steps. If operations fail, verify host, port, and credentials first, then validate command and key inputs.

For dependable automation behavior, apply TTL values to temporary entries, avoid broad wildcard reads during peak load, and keep key prefixes consistent across teams. This improves performance and makes operational debugging significantly easier.

Additional resources