AutomationFlowsAI & RAG › E-sign Logic Engine (workflow 138)

E-sign Logic Engine (workflow 138)

E-Sign Logic Engine (Workflow 138). Uses airtable, googleGeminiChat, twilio. Webhook trigger; 8 nodes.

Webhook trigger★★★★☆ complexityAI-powered8 nodesAirtableGoogle Gemini ChatTwilio
AI & RAG Trigger: Webhook Nodes: 8 Complexity: ★★★★☆ AI nodes: yes Added:

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "name": "E-Sign Logic Engine (Workflow 138)",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "docusign-connect-webhook",
        "options": {}
      },
      "name": "DocuSign Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        250,
        300
      ]
    },
    {
      "parameters": {
        "operation": "upsert",
        "baseId": "appYOURBASEID",
        "table": "E_Sign_Envelopes",
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Envelope_ID": "={{$json.body.envelopeId}}",
            "Current_Status": "={{$json.body.status}}",
            "Viewed_At": "={{$json.body.viewedAt || ''}}",
            "Signed_At": "={{$json.body.signedAt || ''}}",
            "Recipient_Email": "={{$json.body.email}}"
          }
        },
        "options": {
          "externalIdColumn": "Envelope_ID"
        }
      },
      "name": "Airtable: Update State",
      "type": "n8n-nodes-base.airtable",
      "typeVersion": 1,
      "position": [
        450,
        300
      ],
      "credentials": {
        "airtableApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{$json.body.status}}",
              "operation": "equal",
              "value2": "Delivered"
            }
          ]
        }
      },
      "name": "Check: Viewed?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 1,
      "position": [
        650,
        300
      ]
    },
    {
      "parameters": {
        "amount": 2,
        "unit": "hours"
      },
      "name": "Wait 2 Hours",
      "type": "n8n-nodes-base.wait",
      "typeVersion": 1,
      "position": [
        850,
        200
      ]
    },
    {
      "parameters": {
        "operation": "get",
        "baseId": "appYOURBASEID",
        "table": "E_Sign_Envelopes",
        "id": "={{$node[\"Airtable: Update State\"].json.id}}"
      },
      "name": "Check Current Status",
      "type": "n8n-nodes-base.airtable",
      "typeVersion": 1,
      "position": [
        1050,
        200
      ],
      "credentials": {
        "airtableApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{$json.fields.Current_Status}}",
              "operation": "notEqual",
              "value2": "Completed"
            }
          ]
        }
      },
      "name": "Still Unsigned?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 1,
      "position": [
        1250,
        200
      ]
    },
    {
      "parameters": {
        "modelId": {
          "__rl": true,
          "value": "gemini-1.5-flash",
          "mode": "list"
        },
        "prompt": "=Client viewed {{$node[\"Check Current Status\"].json.fields.Document_Name}} 2 hours ago but didn't sign. Draft a polite, low-pressure SMS asking if they have technical issues or specific clause questions. Mention the property {{$node[\"Check Current Status\"].json.fields.Address}}.",
        "options": {}
      },
      "name": "Gemini: Draft Nudge",
      "type": "n8n-nodes-base.googleGeminiChat",
      "typeVersion": 1,
      "position": [
        1450,
        150
      ],
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "from": "+15550001234",
        "to": "={{$node[\"Check Current Status\"].json.fields.Phone}}",
        "message": "={{$json.output}}"
      },
      "name": "Twilio: Send SMS",
      "type": "n8n-nodes-base.twilio",
      "typeVersion": 1,
      "position": [
        1650,
        150
      ],
      "credentials": {
        "twilioApi": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "DocuSign Webhook": {
      "main": [
        [
          {
            "node": "Airtable: Update State",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Airtable: Update State": {
      "main": [
        [
          {
            "node": "Check: Viewed?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check: Viewed?": {
      "main": [
        [
          {
            "node": "Wait 2 Hours",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 2 Hours": {
      "main": [
        [
          {
            "node": "Check Current Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Current Status": {
      "main": [
        [
          {
            "node": "Still Unsigned?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Still Unsigned?": {
      "main": [
        [
          {
            "node": "Gemini: Draft Nudge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Gemini: Draft Nudge": {
      "main": [
        [
          {
            "node": "Twilio: Send SMS",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

E-Sign Logic Engine (Workflow 138). Uses airtable, googleGeminiChat, twilio. Webhook trigger; 8 nodes.

Source: https://github.com/YHSG-Kling/v0-Vip-Re-OS-V1/blob/81d66998f83b841c62598b92718154aaf1c9e2f0/workflows/esign-tracking.json — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

Generate Seller Report. Uses airtable, googleGeminiChat, emailSend. Webhook trigger; 4 nodes.

Airtable, Google Gemini Chat, Email Send
AI & RAG

This powerful n8n automation workflow is designed to execute advanced B2B lead enrichment and hyper-personalization for cold email outreach. By orchestrating a complex chain of data scraping, AI analy

OpenAI, HTTP Request, Airtable
AI & RAG

This template is perfect for e-commerce entrepreneurs, marketers, agencies, and creative teams who want to turn simple product photos and short descriptions into professional flyers or product videos—

Airtable, OpenAI, HTTP Request +1
AI & RAG

This workflow automates the process of generating stylized product photos for e-commerce by combining real product shots with creative templates. It enables the creation of a complete set of images fo

Airtable, HTTP Request, Google Gemini
AI & RAG

This n8n template demonstrates how to capture inbound leads from a form, qualify them with OpenAI, and route the hottest ones to a Bland AI voice agent that calls them back, books a meeting on Google

Airtable, OpenAI, SendGrid +2