AutomationFlowsWeb Scraping › Generate Professional Email Signatures in HTML & PDF with Gmail Delivery

Generate Professional Email Signatures in HTML & PDF with Gmail Delivery

ByJitesh Dugar @jiteshdugar on n8n.io

Create gorgeous, branded, professional email signatures automatically — from a simple POST request. This workflow turns user details into a premium HTML signature, converts it into PDF, and delivers it instantly via Gmail, along with a clean JSON response.

Webhook trigger★★★★☆ complexity12 nodesGmailHTTP RequestN8N Nodes Htmlcsstopdf
Web Scraping Trigger: Webhook Nodes: 12 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #11018 — we link there as the canonical source.

This workflow follows the Gmail → HTTP Request recipe pattern — see all workflows that pair these two integrations.

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
{
  "id": "",
  "meta": {
    "templateCredsSetupCompleted": false
  },
  "name": "Dynamic Email Signature Creator",
  "tags": [],
  "nodes": [
    {
      "id": "492a84fa-ecf8-4b6a-a889-8676aae3fe90",
      "name": "Webhook - Signature Request",
      "type": "n8n-nodes-base.webhook",
      "position": [
        0,
        112
      ],
      "parameters": {
        "path": "email-signature",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "responseNode"
      },
      "typeVersion": 2
    },
    {
      "id": "72cd5c6a-1039-4173-817a-c129c529ef68",
      "name": "Send Email via Gmail",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1040,
        112
      ],
      "parameters": {
        "sendTo": "={{ $('Extract Inputs').item.json.email }}",
        "message": "=Hi {{ $('Extract Inputs').item.json.name }}, <br><br>\n\nYour email signature has been generated successfully. <br>\nYou can download it from the attachment below.<br><br>\n\nPreview: <br>\n<a href=\"{{$json.pdf_url}}\" style=\"color:#2563eb;\">View Signature PDF</a><br><br>\n\nThanks,<br>\nn8n Automation Bot\n",
        "options": {
          "attachmentsUi": {
            "attachmentsBinary": [
              {}
            ]
          }
        },
        "subject": "Your New Email Signature PDF"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "99ab3ea8-369f-4111-8d0f-5bacea62b4a0",
      "name": "Success Response",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        1232,
        112
      ],
      "parameters": {
        "options": {
          "responseCode": 200,
          "responseHeaders": {
            "entries": [
              {
                "name": "Content-Type",
                "value": "application/json"
              }
            ]
          }
        },
        "respondWith": "json",
        "responseBody": "={\n  \"status\": \"success\",\n  \"message\": \"Email signature PDF sent successfully\",\n  \"sent_to\": \"{{ $('Extract Inputs').item.json.email }}\",\n  \"pdf_url\": \"{{ $('HTML to PDF').item.json.pdf_url }}\"\n}\n"
      },
      "typeVersion": 1.1
    },
    {
      "id": "88bd8b10-3c00-449d-aacf-fd515369e6cd",
      "name": "Download binary data",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        848,
        112
      ],
      "parameters": {
        "url": "={{ $json.pdf_url }}",
        "options": {}
      },
      "typeVersion": 4.3
    },
    {
      "id": "04c7b298-2810-4883-a5c9-d52d1134014d",
      "name": "Extract Inputs",
      "type": "n8n-nodes-base.code",
      "position": [
        208,
        112
      ],
      "parameters": {
        "jsCode": "const b = $json.body;\n\nreturn [\n  {\n    json: {\n      name: b.name,\n      designation: b.designation,\n      email: b.email,\n      phone: b.phone,\n      linkedin: b.linkedin,\n      instagram: b.instagram,\n      website: b.website\n    }\n  }\n];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "65e6bee8-20f4-4fe6-ad0d-c67fa09013c1",
      "name": "Build HTML Signature",
      "type": "n8n-nodes-base.set",
      "position": [
        432,
        112
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "453e74e4-f219-48cd-b313-0b6dce70f13c",
              "name": "signature_html",
              "type": "string",
              "value": "=<div style=\"width:520px;margin:0 auto;padding:24px;font-family:'Inter',Arial,sans-serif;\n     background:#ffffff;border:1px solid #e5e7eb;border-radius:14px;\n     box-shadow:0 2px 8px rgba(0,0,0,0.06);\">\n\n  <!-- Header -->\n  <div style=\"border-bottom:1px solid #e5e7eb;padding-bottom:14px;margin-bottom:16px;\">\n    <h2 style=\"margin:0;font-size:22px;color:#111827;font-weight:600;\">\n      {{$json.name}}\n    </h2>\n    <p style=\"margin:2px 0 0;font-size:14px;color:#6b7280;\">\n      {{$json.designation}}\n    </p>\n  </div>\n\n  <!-- TWO COLUMN LAYOUT -->\n  <div style=\"display:flex;gap:24px;align-items:flex-start;\">\n\n    <!-- LEFT COLUMN -->\n    <div style=\"flex:1;min-width:200px;\">\n      <p style=\"margin:8px 0;font-size:14px;color:#374151;\">\n        \ud83d\udce7 <a href=\"mailto:{{$json.email}}\" style=\"color:#2563eb;text-decoration:none;\">\n          {{$json.email}}\n        </a>\n      </p>\n      <p style=\"margin:8px 0;font-size:14px;color:#374151;\">\n        \ud83d\udcde <a href=\"tel:{{$json.phone}}\" style=\"color:#2563eb;text-decoration:none;\">\n          {{$json.phone}}\n        </a>\n      </p>\n    </div>\n\n    <!-- RIGHT COLUMN -->\n    <div style=\"flex:1;min-width:200px;\">\n      <p style=\"margin:8px 0;font-size:14px;color:#374151;\">\n        \ud83d\udd17 LinkedIn:\n        <a href=\"{{$json.linkedin}}\" style=\"color:#2563eb;text-decoration:none;\">Profile</a>\n      </p>\n\n      <p style=\"margin:8px 0;font-size:14px;color:#374151;\">\n        \ud83d\udcf8 Instagram:\n        <a href=\"{{$json.instagram}}\" style=\"color:#2563eb;text-decoration:none;\">Profile</a>\n      </p>\n\n      <p style=\"margin:8px 0;font-size:14px;color:#374151;\">\n        \ud83c\udf10 Website:\n        <a href=\"{{$json.website}}\" style=\"color:#2563eb;text-decoration:none;\">Visit</a>\n      </p>\n    </div>\n\n  </div>\n\n  <!-- FOOTER -->\n  <hr style=\"border:0;border-top:1px solid #e5e7eb;margin:18px 0;\">\n  <p style=\"margin:0;font-size:11px;color:#9ca3af;text-align:center;\">\n    Premium Email Signature \u2022 Auto-Generated via n8n\n  </p>\n\n</div>\n"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "99ae8ba1-7247-4ae8-9a53-ecb24c555712",
      "name": "HTML to PDF",
      "type": "n8n-nodes-htmlcsstopdf.htmlcsstopdf",
      "position": [
        624,
        112
      ],
      "parameters": {
        "html_content": "={{ $json.signature_html }}"
      },
      "credentials": {
        "htmlcsstopdfApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "7f394a11-e531-463a-be84-b3ba09d60dd3",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -480,
        16
      ],
      "parameters": {
        "width": 336,
        "height": 304,
        "content": "## **How This Workflow Works**\n\n\u2022 User sends details \u2192 name, designation, email, phone, social links\n\u2022 Workflow extracts + formats the input\n\u2022 Premium HTML signature is generated with icons, theme, and layout\n\u2022 HTML is converted into a high-resolution PDF\n\u2022 PDF is downloaded & attached to an email\n\u2022 Gmail sends the final signature to the user\n\u2022 Webhook returns a JSON success response with the pdf_url"
      },
      "typeVersion": 1
    },
    {
      "id": "3ad645b5-70f7-4f5f-b976-cbcfac2a3c03",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -480,
        -224
      ],
      "parameters": {
        "width": 304,
        "height": 224,
        "content": "## **Setup Instructions**\n\n**Content:**\n**Setup Checklist**\n\u2022 Add Gmail credentials\n\u2022 Replace logo URL if needed\n\u2022 Test webhook via Postman\n\u2022 Ensure HTML \u2192 PDF API key is valid at https://pdfmunk.com\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "9d08e2a5-1614-44d9-bb68-26c47def173b",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -48,
        -176
      ],
      "parameters": {
        "color": 5,
        "width": 400,
        "height": 448,
        "content": "# **Input & Extraction**\n\n**Content:**\n**Webhook Intake**\n\u2022 Receives JSON (name, role, email, phone, links)\n\u2022 Validates required fields\n\u2022 Secure via custom admin token\n\n\n**Content:**\n**Extract Inputs**\n\u2022 Normalizes fields\n\u2022 Creates clean variables for HTML"
      },
      "typeVersion": 1
    },
    {
      "id": "86fc8547-2b21-4b2e-839b-e501b9a017f5",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        384,
        -192
      ],
      "parameters": {
        "color": 5,
        "width": 368,
        "height": 464,
        "content": "# **HTML Signature Builder**\n\n**Content:**\n**Build Modern Signature**\n\u2022 Premium layout (icons + sections)\n\u2022 Injects dynamic data safely\n\n**Content:**\n**HTML \u2192 PDF**\n\u2022 Handles fonts + icon SVGs\n\u2022 Outputs secure hosted `pdf_url`\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "b1414e28-48c8-4c8d-a87e-b27ac7cce82e",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        800,
        -224
      ],
      "parameters": {
        "color": 5,
        "width": 608,
        "height": 512,
        "content": "# **Delivery**\n\n**Content:**\n**Download PDF File**\n\u2022 Fetches `pdf_url`\n\u2022 Stores binary (property: data)\n\n**Content:**\n**Email Delivery**\n\u2022 Attaches generated PDF\n\u2022 Includes preview + signature details\n\n**Content:**\n**Return Response**\n\u2022 Sends JSON success message\n\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "",
  "connections": {
    "HTML to PDF": {
      "main": [
        [
          {
            "node": "Download binary data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Inputs": {
      "main": [
        [
          {
            "node": "Build HTML Signature",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Build HTML Signature": {
      "main": [
        [
          {
            "node": "HTML to PDF",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download binary data": {
      "main": [
        [
          {
            "node": "Send Email via Gmail",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Email via Gmail": {
      "main": [
        [
          {
            "node": "Success Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook - Signature Request": {
      "main": [
        [
          {
            "node": "Extract Inputs",
            "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

Create gorgeous, branded, professional email signatures automatically — from a simple POST request. This workflow turns user details into a premium HTML signature, converts it into PDF, and delivers it instantly via Gmail, along with a clean JSON response.

Source: https://n8n.io/workflows/11018/ — original creator credit. Request a take-down →

More Web Scraping workflows → · Browse all categories →

Related workflows

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

Web Scraping

A comprehensive n8n workflow template that completely automates the startup pitch deck submission process for accelerators, incubators, VC firms, and startup competitions. This workflow validates foun

Google Drive, Gmail, N8N Nodes Verifiemail +2
Web Scraping

This workflow automates the entire parent consent process for school field trips, replacing manual paper forms with a secure, verified, and legally compliant digital system.

Google Drive, Gmail, N8N Nodes Verifiemail +2
Web Scraping

Transform new hire onboarding from 3-4 hours of manual document compilation to 3 minutes of automated generation - creates personalized, role-specific document packages including welcome letters, bene

N8N Nodes Htmlcsstopdf, Google Drive, Gmail +1
Web Scraping

Overview

HTTP Request, Gmail, Google Sheets +2
Web Scraping

Automatically generate professional PDF invoices when new orders are placed in Shopify. This template creates beautifully formatted invoices from order data, converts them to PDF, saves to Google Driv

Google Drive, Gmail, N8N Nodes Htmlcsstopdf +1