{
  "id": "UGHwqOYsZDRbTldL",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Automated KlickTipp via SMTP: Send Transactional Emails",
  "tags": [
    {
      "id": "15wrq9sti6wyqr6J",
      "name": "TEMPLATE",
      "createdAt": "2025-01-08T16:34:30.163Z",
      "updatedAt": "2025-01-08T16:34:30.163Z"
    }
  ],
  "nodes": [
    {
      "id": "a164b91a-d749-4ad7-a561-8a3179958227",
      "name": "Email delivery status: Sent",
      "type": "n8n-nodes-klicktipp.klicktipp",
      "position": [
        800,
        -96
      ],
      "parameters": {
        "fields": {
          "dataFields": [
            {
              "fieldId": "field222442",
              "fieldValue": "Sent"
            },
            {
              "fieldId": "field222482",
              "fieldValue": "={{ $('Generate HTML template').item.json.html }}"
            }
          ]
        },
        "resource": "subscriber",
        "operation": "update",
        "lookupEmail": "={{ $('Recieve the data from KlickTipp').item.json.email }}"
      },
      "credentials": {
        "klickTippApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "bb626ee8-cb45-45f7-8867-7d0aaf8ddb5c",
      "name": "Email delivery status: Failed",
      "type": "n8n-nodes-klicktipp.klicktipp",
      "position": [
        800,
        80
      ],
      "parameters": {
        "fields": {
          "dataFields": [
            {
              "fieldId": "field222442",
              "fieldValue": "Failed"
            },
            {
              "fieldId": "field222482",
              "fieldValue": "={{ $('Generate HTML template').item.json.html }}"
            }
          ]
        },
        "resource": "subscriber",
        "operation": "update",
        "lookupEmail": "={{ $('Recieve the data from KlickTipp').item.json.email }}"
      },
      "credentials": {
        "klickTippApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "22e87455-dd17-4416-8e21-bf4cfc3a452c",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -128,
        -96
      ],
      "parameters": {
        "color": 7,
        "height": 288,
        "content": "## 1. Get data."
      },
      "typeVersion": 1
    },
    {
      "id": "6f29cec7-c5da-4a34-a3b9-aedf9e7271b7",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        128,
        -96
      ],
      "parameters": {
        "color": 7,
        "width": 304,
        "height": 288,
        "content": "## 2. Create an email body."
      },
      "typeVersion": 1
    },
    {
      "id": "e0c2b35d-d1c0-415d-84e5-bafec8084d3f",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        448,
        -96
      ],
      "parameters": {
        "color": 7,
        "height": 288,
        "content": "## 3. Send an email."
      },
      "typeVersion": 1
    },
    {
      "id": "172a8152-3b93-463e-a1de-191675e10969",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        704,
        -160
      ],
      "parameters": {
        "color": 7,
        "width": 384,
        "height": 432,
        "content": "## 4. Update email delivery status."
      },
      "typeVersion": 1
    },
    {
      "id": "aa0fa18b-3956-4463-b7fb-2d3de99c6cbb",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -720,
        -160
      ],
      "parameters": {
        "width": 580,
        "height": 1720,
        "content": "Community Node Disclaimer: This workflow uses KlickTipp community nodes.\n\n\n### How It Works\n\n**Automate transactional emails from KlickTipp via SMTP**  \nThis workflow receives contact data from a KlickTipp Outbound rule, generates a personalized HTML email, and sends it via any SMTP-compatible service (e.g., Gmail SMTP, Outlook, SendGrid, your own mail server). Key fields (e.g., first name, company, website, phone, or other custom fields) can be dynamically mapped into the body. After sending, the workflow saves the email\u2019s HTML content and writes back an Email delivery status (\u201cSent\u201d or \u201cFailed\u201d) to the contact in KlickTipp for clear visibility.\n\n### Key Features\n\n**KlickTipp Outbound Trigger**\n- Starts when a KlickTipp Outbound rule calls the webhook (e.g., after a tag is applied).\n- Accepts payload with recipient email and optional custom fields (first name, company, website, phone, etc.).\n- Easy to adapt for confirmations, updates, welcomes, and announcements.\n\n**HTML Email Composer**\n- Builds a clean, brandable HTML template with safe fallbacks.\n- Supports per-contact personalization via mapped fields.\n\n**SMTP Delivery**\n- Sends emails using the n8n **Send Email** node (SMTP).\n- Works with Gmail, Outlook, or any SMTP-compatible service.\n- Supports From/Reply-To, Subject, HTML body, CC/BCC, and attachments.\n\n**Delivery Status Write-Back**\n- On success: updates a KlickTipp custom field (e.g., **Email delivery status = Sent**).\n- On error: updates the same field to **Failed** (error details available in execution logs).\n\n### Setup Instructions\n\n**Install and Configure Nodes**\n- Add/enable KlickTipp community nodes and authenticate with valid API credentials.\n- Configure an **SMTP credential** in n8n:\n  - Host (e.g., smtp.gmail.com)\n  - Port (465 or 587)\n  - Authentication (username, password, or app password)\n  - SSL/TLS settings as required by your provider\n- Select this credential in the **Send Email** node.\n- Paste/import your HTML into the **Generate HTML template** node.\n- Activate the workflow.\n\n### Workflow Logic\n1. **Trigger from KlickTipp:** Outbound sends contact data to the workflow.\n2. **Generate HTML:** Build personalized HTML (and optional plain-text).\n3. **Send via SMTP:** Deliver the message with the **Send Email** node.\n4. **On Success:** Update KlickTipp contact \u2192 **Email delivery status: Sent**.\n5. **On Error:** Update KlickTipp contact \u2192 **Email delivery status: Failed** (see logs for details).\n\n### Benefits\n- **Immediate, personalized communication** without manual steps.\n- **Consistent branding** with reusable HTML templates.\n- **Clear observability** by writing back delivery status to KlickTipp.\n- **Flexible & extensible** for many message types beyond payments.\n\n### Testing and Deployment\n- Tag a test contact in KlickTipp to trigger the Outbound rule.\n- Verify the email arrives with correct personalization.\n- Confirm the **Email delivery status** field updates to **Sent** (or **Failed** for negative tests).\n- Review execution logs and adjust field mappings if necessary.\n\n### Notes\n- **Customization:** Swap templates, add CC/BCC, attachments, or a plain-text part for deliverability.\n- **SMTP Provider Settings:** Refer to your email provider\u2019s SMTP configuration (e.g., Gmail, Outlook, or custom server)."
      },
      "typeVersion": 1
    },
    {
      "id": "6a2ea9d1-0df7-4f5b-9a30-53dee27e6e87",
      "name": "Generate HTML template",
      "type": "n8n-nodes-base.html",
      "position": [
        192,
        0
      ],
      "parameters": {
        "html": "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"UTF-8\">\n  <title>Thank You</title>\n  <style>\n    body {\n      margin: 0;\n      padding: 16px;\n      font-family: Arial, Helvetica, sans-serif;\n      font-size: 14px;\n      color: #111111;\n      background: #f5f5f5;\n    }\n\n    /* Layout */\n    .wrapper {\n      max-width: 600px;\n      margin: 0 auto;\n      background: #ffffff;\n      padding: 20px;\n      border-radius: 6px;\n      box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);\n    }\n\n    /* Typography */\n    h2.title {\n      margin: 0 0 12px 0;\n      font-size: 20px;\n      font-weight: bold;\n      color: #2c3e50;\n    }\n\n    p {\n      margin: 0 0 10px 0;\n    }\n\n    /* Links */\n    a {\n      color: #1155cc;\n      text-decoration: underline;\n    }\n\n    /* Contact block */\n    .contact-info {\n      margin: 15px 0;\n    }\n\n    .footer {\n      margin-top: 20px;\n    }\n  </style>\n</head>\n<body>\n  <div class=\"wrapper\">\n    <h2 class=\"title\">Thank you for using KlickTipp!</h2>\n\n    <p>Hello {{ $json.CustomFieldFirstName || 'there' }},</p>\n    <p>We appreciate your trust in KlickTipp. Your account details have been updated successfully.</p>\n\n    <div class=\"contact-info\">\n      <p><strong>Website:</strong> <a href=\"{{ $json.fieldWebsite }}\">{{ $json.CustomFieldWebsite }}</a></p>\n      <p><strong>Phone:</strong> {{ $json.CustomFieldPhone }}</p>\n    </div>\n\n    <p>If you have any questions, feel free to reply to this email \u2014 we\u2019re here to help!</p>\n\n    <p class=\"footer\">Best regards,<br>The KlickTipp Team</p>\n  </div>\n</body>\n</html>"
      },
      "typeVersion": 1.2
    },
    {
      "id": "69b59021-fb88-4a44-96e0-30b9a33edd03",
      "name": "Recieve the data from KlickTipp",
      "type": "n8n-nodes-klicktipp.klicktippTrigger",
      "position": [
        -64,
        0
      ],
      "parameters": {},
      "credentials": {
        "klickTippApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "97b6ca2b-618e-4446-aa84-ef9d46648019",
      "name": "Send email",
      "type": "n8n-nodes-base.emailSend",
      "onError": "continueErrorOutput",
      "position": [
        512,
        0
      ],
      "parameters": {
        "html": "={{ $json.html }}",
        "options": {
          "appendAttribution": false
        },
        "subject": "Thank you!",
        "toEmail": "={{ $('Recieve the data from KlickTipp').item.json.email }}",
        "fromEmail": "\"KlickTipp team\" user@example.com"
      },
      "credentials": {
        "smtp": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    }
  ],
  "active": true,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "7b7e9c38-3a97-4e34-8e90-a14867de5432",
  "connections": {
    "Send email": {
      "main": [
        [
          {
            "node": "Email delivery status: Sent",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Email delivery status: Failed",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate HTML template": {
      "main": [
        [
          {
            "node": "Send email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Recieve the data from KlickTipp": {
      "main": [
        [
          {
            "node": "Generate HTML template",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}