Guide

Sending Contracts for E-Signature in n8n with TurboDocx & Slack

A guide to building an automated workflow combining document generation, Slack manager approval, e-signatures, and SharePoint filing

4 min read
עב
Sending Contracts for E-Signature in n8n with TurboDocx & Slack
Based on original reporting byn8n ↗Translated and summarized by our AI-assisted news systemHow we work

Executive summary

What to know

  1. The workflow is based on two parts: sending contracts for review and approval every 15 minutes, and filing the signed contract upon signature completion.

  2. The TurboDocx node in n8n handles generating a PDF file from a Word template and collecting a legally binding electronic signature.

  3. The approval step takes place in Slack using a node that waits for a human click on "Approve & send" or "Reject" before sending for signature.

  4. The TurboDocx free tier includes generating 5 documents and collecting 5 signatures per month for building and testing the workflow.

A guest post published on the n8n blog as part of the Verified Node Spotlight by Nicolas Fry, CEO of TurboDocx, describes a scenario where the deal is closed and the contract is ready, but it sits in an email inbox for three days waiting for an approval to send, and once signed, the PDF file ends up in a Downloads folder instead of the shared drive. According to Fry, n8n is already capable of pulling deal data, generating the document, routing it for approval, and filing it, but until now, it lacked a native node for the signature step itself. Because of this, automated workflows stopped at that point and required manual handling to finish the process. The guide presents a workflow that closes this gap using the verified TurboDocx node. In this workflow, a row in Excel marked with the status "Ready to send" is converted into a generated contract, a manager approves sending it in Slack, the document is sent out for signature, and when the client signs, the executed PDF file is filed in SharePoint and the row in the table updates automatically.

Workflow Structure: Sending and Filing

According to the guide, the canvas in n8n is divided into two main parts that operate separately:

Part A (Send): This part runs every 15 minutes. A Schedule Trigger node starts the run. Next, a Microsoft Excel node reads the contract table and filters only rows marked with the status "Ready to send." A Loop Over Items node handles each contract individually. In the next step, a TurboDocx node generates the agreement from a template and converts it into a PDF file. A Slack node posts a message with "Approve & send" or "Reject" buttons in the dedicated channel and waits for a response. An If node branches based on the decision: approved contracts are sent for signature using TurboDocx, the Excel row is marked as "Sent" or "Rejected," and an update message is sent to the team in Slack.

Part B (File): This part runs when someone signs the document. A TurboDocx Trigger fires on the signature event and downloads the executed PDF file. A Microsoft SharePoint node uploads the file directly to the organization's contracts folder, the Excel row is marked as "Signed," and Slack posts an update message to the team announcing the completion of the signing.

Fry details the division of roles between the systems: n8n handles the schedule, the loop, the branching, and moving data between Excel, Slack, and SharePoint. In contrast, TurboDocx handles the two steps that n8n does not perform natively: turning a Word template into a finished contract, and collecting a legally binding electronic signature.

Prerequisites for Setting Up the Workflow

To set up the workflow, the guide outlines several prerequisites:

  1. An n8n instance: Cloud instance or self-hosted installation.
  2. The TurboDocx node: Direct installation from the Node panel inside n8n or by importing the workflow template.
  3. A TurboDocx account: The free tier includes generating 5 documents and collecting 5 signatures per month, an amount sufficient for building and testing. In addition, the article mentions TurboQuote, the company's CPQ tool that integrates pricing and quotes into the same document and signature engine.
  4. A Microsoft 365 account including Excel and SharePoint, with credentials configured in n8n.
  5. A Slack workspace with a designated approvals channel, such as #contract-approvals.

Workflow Implementation Steps in n8n

Step 1: Setting up the contract queue in Excel. Each row in the table represents a single contract, and the Status column serves as the task queue. The workflow locates rows with the status "Ready to send" and updates the state as the contract progresses. A table should be created in an Excel file stored in SharePoint or OneDrive with the following columns: Status (which transitions from "Ready to send" to "Sent" or "Rejected," and finally "Signed"), client details (Client Name, Company, Email), Amount and Start Date fields, as well as Document ID and Signed At, which are populated automatically by the workflow. In the Microsoft Excel node, configure a Lookup operation by the Status column with the value "Ready to send" and enable the Return All Matches option. The article emphasizes that Excel can be swapped with any other system that has a matching node in n8n capable of reading and updating records, such as CRM systems (such as Salesforce, HubSpot, Pipedrive, or Zoho CRM), databases and spreadsheets (Google Sheets, Airtable, Postgres, or n8n Data Table), or task management tools (monday.com or ClickUp). When using a CRM system, the 15-minute schedule can also be skipped to trigger the workflow immediately upon moving a deal to the Closed Won stage. Similarly, Slack can be replaced with Microsoft Teams, and SharePoint can be replaced with Google Drive, Dropbox, or OneDrive.

Step 2: Preparing the contract template. Work begins from a regular Word (.docx) file approved by legal personnel. The variable sections are replaced with merge variables such as {clientName}, {amount}, and {startDate}. Additionally, two anchors are defined for the signature: {client_sig} to mark where the client's signature goes, and {client_date} to mark where the signing date is stamped. The file is then uploaded to TurboDocx and the template ID is copied. The legal clauses remain fixed, and only the blank fields update.

Step 3: Generating the contract. In the Generate Agreement Docx node in n8n, enter the connection credentials and paste the template ID. Next, map each variable to its corresponding column in Excel (for example, clientName to the Client Name column). A test run generates a formatted contract matching the template within a few seconds.

Step 4: Approval in Slack. The Slack node uses the Send and Wait for Response option to post the contract details to the approvals channel with "Approve & send" and "Reject" buttons, waiting for a response. The message is configured to show the approver the client name, contract value, and a link to the document. The If node branches the flow: approval passes the contract to signature, whereas rejection marks the row in Excel as "Rejected" and sends an update to the team.

Step 5: Sending for electronic signature. The approved contract is passed to the Send Agreement for E-Signature node (TurboSign: Send Signature). Signer name and email details are mapped from the Excel row. The system places the signature and date fields precisely at the anchor positions pre-defined in the template. The signer receives an email notification and can sign from any device, while the row in Excel simultaneously updates to "Sent."

Step 6: Filing the signed contract in SharePoint. Part B begins with the TurboDocx Trigger node, whose webhook is registered automatically when the workflow is activated. In the Microsoft SharePoint node, select the site and destination folder. Upon signature completion, the PDF file is uploaded to the folder, the row in Excel is marked as "Signed," and Slack sends a message on the completion of the process.

End-to-End Testing and Troubleshooting

Before applying the workflow with clients, the guide recommends performing a full run for self-testing: activate the workflow, add a row in Excel with a personal email in "Ready to send" status, approve in Slack, sign from the inbox, and verify that the PDF file arrived in SharePoint and the row was marked as "Signed."

Additionally, the guide lists five troubleshooting scenarios and their solutions:

  1. Signed contracts are not filed: Ensure the workflow is activated, as the signature webhook registers only upon activation.
  2. Rows are not picked up from Excel: The status filter requires an exact text match, so verify there are no typos or extra spaces in the "Ready to send" value.
  3. No message appears in Slack: Ensure the Slack app has been added to the approvals channel.
  4. Signature is placed in the wrong location: Verify the exact spelling of the anchors in the Word template ({client_sig} and {client_date}).
  5. HTTPS callback URL error on a self-hosted instance: The signature trigger requires a public HTTPS address. While n8n Cloud includes this by default, on a self-hosted instance the system must be placed behind an HTTPS address (or tunnel) and the WEBHOOK_URL environment variable must be set.

Advantages, Limitations, and Future Directions

The article highlights three key advantages of this structure: legal wording is protected from changes because clauses are managed in the original template; no contract is sent without human approval in Slack; and no signed document is lost because it is filed in a central SharePoint folder.

Alongside this, the guide notes that in its current published version, the workflow is designed for a single signer and does not support redlines or back-and-forth negotiation. Contracts requiring changes must be updated in the template before being re-marked as "Ready to send."

Finally, several options for future workflow expansion are suggested: triggering based on deal stage changes in a CRM instead of a fixed schedule, integrating OpenAI or Anthropic AI nodes to draft business overviews from call summaries prior to document generation, routing contracts to different approvers based on financial value, and using the same signature step for sales quotes while referencing the CPQ quote template.

Was this useful for your business?

Questions & Answers

FAQ

This article was produced by our AI-assisted system through translation, summarization, and automated quality controls based on original reporting by n8n. Read about our editorial process. Link to the original source.

Get useful AI updates by email

A concise digest from our news desk.

הכרזת n8n 3.0 בטא: שינויי תשתית, אבטחה ודוח הגירה לקראת דצמבר
מוצר חדש
4 דקות
מ־n8n

הכרזת n8n 3.0 בטא: שינויי תשתית, אבטחה ודוח הגירה לקראת דצמבר

חברת n8n הודיעה על שחרור גרסת n8n 3.0.0 בטא, לקראת השקת הגרסה היציבה בתחילת דצמבר. העדכון מתמקד בשיפורי תשתית, אמינות ואבטחה, וכולל שינויים שוברים כמו הסרת מצב נתונים בינאריים בזיכרון, הרצת הפעלות ידניות על שרתי עיבוד במצב תור, קיצור ברירת המחדל של הפסקת הזמן בצומת הקוד לדקה אחת, והגבלת התקנה עצמית ל-Docker בלבד. משתמשים מגרסה 2.39 ואילך יכולים לבדוק את התאמת המערכת באמצעות דוח הגירה מובנה.

קרא עוד
ניהול מצב בסוכני AI: הבדלים בין ארכיטקטורה בעלת מצב לחסרת מצב
מדריך
4 דקות
מ־n8n

ניהול מצב בסוכני AI: הבדלים בין ארכיטקטורה בעלת מצב לחסרת מצב

בפוסט של n8n מוסבר כי state הוא המידע שסוכן AI נושא בין משימות, החל מהיסטוריית שיחה ועד לזיכרון לטווח ארוך ולפרופילי משתמשים. ההבדל בין ארכיטקטורה בעלת מצב (stateful) לארכיטקטורה חסרת מצב (stateless) מתמקד בשאלה האם המערכת משמרת נתונים מאינטראקציות קודמות או מתחילה כל בקשה כדף חלק. יישומים בעלי מצב מעניקים המשכיות אך דורשים תשתית לאחסון ולניהול מצב, בעוד יישומים חסרי מצב מפשטים חלוקת עומסים ועמידות לתקלות. מודלי LLM אינם שומרים שיחות באופן אוטומטי, ולכן סוכני AI מתנהגים באופן בעל מצב באמצעות שמירה ושליפה של נתונים מחוץ למודל. ב-n8n מוצע לשמור על הרצה חסרת מצב כברירת מחדל, ולהוסיף צומתי זיכרון לסשנים ומאגרי מצב משותפים רק היכן שנדרשת המשכיות.

קרא עוד
הכרזת n8n Agents: שילוב סוכני AI עצמאיים לצד תהליכי עבודה
מוצר חדש
4 דקות
מ־n8n

הכרזת n8n Agents: שילוב סוכני AI עצמאיים לצד תהליכי עבודה

פלטפורמת n8n הכריזה על השקת Agents (סוכנים), המאפשרים למשתמשים להגדיר מטרות בשפה חופשית ולהשאיר לסוכן לקבוע את שלבי הביצוע בעזרת מודלים, כלים ותהליכי עבודה קיימים. הסוכנים יכולים לפעול מתוך Slack, Telegram, Discord, לפי תזמון מוגדר או מתוך תהליכי עבודה באמצעות הצומת החדש Message an Agent. כל סוכן כולל ניהול זיכרון, הפעלות, כלים, מיומנויות ומנגנוני אישור אנושי לפעולות רגישות. התכונה זמינה כעת ב-Preview למשתמשי n8n Cloud ובהתקנה עצמאית.

קרא עוד
בדיקת פרומפטים ליישומי LLM: מדריך n8n לזיהוי רגרסיות
מדריך
4 דקות
מ־n8n

בדיקת פרומפטים ליישומי LLM: מדריך n8n לזיהוי רגרסיות

מדריך שפורסם על ידי n8n מפרט כיצד מסגרות עבודה לבדיקת פרומפטים מאפשרות לאתר רגרסיות ביישומי LLM לפני עלייתם לסביבת הייצור. בשל האופי הבלתי-דטרמיניסטי של מודלי שפה, בדיקות התאמה מדויקת מסורתיות אינן מספקות. המדריך סוקר כלים נפוצים בתחום, מבחין בין שיטות הערכה דטרמיניסטיות לבין שימוש ב-LLM כשופט, ומציג כיצד לבצע בדיקות והשוואות מול קו בסיס ישירות בתוך פלטפורמת n8n.

קרא עוד

More articles you might like

All articles
ניהול עלויות מקצה לקצה ב-Amazon Bedrock: מדריך לצוותי FinOps
מדריך
5 דקות
מ־AWS Machine Learning

ניהול עלויות מקצה לקצה ב-Amazon Bedrock: מדריך לצוותי FinOps

בפוסט של מומחי AWS מוצג מודל תפעולי בן חמישה שלבים לניהול עלויות ב-Amazon Bedrock, המיועד לצוותי FinOps והנדסת פלטפורמה. המודל מתמקד בעומסי עבודה של סוכני בינה מלאכותית (agentic workloads), שבהם צריכת הטוקנים מושפעת מרמת האוטונומיה וגודל ההקשר. חמשת השלבים כוללים: שיוך עלויות לכל ישות וצוות באמצעות תגי IAM ודוחות CUR 2.0; יצירת יכולת תצפית ובקרה באמצעות רישום יומני הסקה ב-CloudWatch וב-S3 לצד מטא-דאטה מובנית; אכיפת תקציבים בשלוש רמות (התראות, שלילת הרשאות ב-IAM או חסימה סינכרונית בשער); מיטוב ברירות מחדל באמצעות שמירה במטמון (prompt caching) וניתוב מודלים חכם; והפעלת סקירת ביצועים משותפת מבוססת מדדים ברורים.

קרא עוד
אימון סוכנים ב-Multi-Turn Reinforcement Learning ב-SageMaker AI
מדריך
5 דקות
מ־AWS Machine Learning

אימון סוכנים ב-Multi-Turn Reinforcement Learning ב-SageMaker AI

מדריך טכני של מהנדסי AWS מציג את השימוש ב-Multi-Turn Reinforcement Learning (MTRL) על גבי Amazon SageMaker AI לאימון סוכני בינה מלאכותית על רצפי פעולות מרובי שלבים. באמצעות הדגמה על משחק Wordle, המאמר מפרט כיצד אימון מודל GPT-OSS-20B בעזרת סביבת Amazon Bedrock AgentCore ואלגוריתם GRPO העלה את שיעור הפתרון מ-61% ל-84% בהגדרות הגשה, בעלות של כ-339 דולר בטוקנים. המדריך כולל פירוט על ארכיטקטורת המערכת, הכנת מערך הנתונים ללא תוויות, נוסחת פונקציית התגמול המפרידה בין תוצאה לעיצוב התנהגות, והתמודדות עם תקלות תשתית ואימות במהלך האימון.

קרא עוד
ניהול מצב בסוכני AI: הבדלים בין ארכיטקטורה בעלת מצב לחסרת מצב
מדריך
4 דקות
מ־n8n

ניהול מצב בסוכני AI: הבדלים בין ארכיטקטורה בעלת מצב לחסרת מצב

בפוסט של n8n מוסבר כי state הוא המידע שסוכן AI נושא בין משימות, החל מהיסטוריית שיחה ועד לזיכרון לטווח ארוך ולפרופילי משתמשים. ההבדל בין ארכיטקטורה בעלת מצב (stateful) לארכיטקטורה חסרת מצב (stateless) מתמקד בשאלה האם המערכת משמרת נתונים מאינטראקציות קודמות או מתחילה כל בקשה כדף חלק. יישומים בעלי מצב מעניקים המשכיות אך דורשים תשתית לאחסון ולניהול מצב, בעוד יישומים חסרי מצב מפשטים חלוקת עומסים ועמידות לתקלות. מודלי LLM אינם שומרים שיחות באופן אוטומטי, ולכן סוכני AI מתנהגים באופן בעל מצב באמצעות שמירה ושליפה של נתונים מחוץ למודל. ב-n8n מוצע לשמור על הרצה חסרת מצב כברירת מחדל, ולהוסיף צומתי זיכרון לסשנים ומאגרי מצב משותפים רק היכן שנדרשת המשכיות.

קרא עוד
כיצד להמשיך הפעלת אפליקציית GitHub Copilot ב-VS Code
מדריך
4 דקות
מ־GitHub AI and ML

כיצד להמשיך הפעלת אפליקציית GitHub Copilot ב-VS Code

מדריך שפורסם בבלוג של GitHub מסביר כיצד להמשיך הפעלת עבודה של אפליקציית GitHub Copilot ישירות בתוך עורך הקוד Visual Studio Code. המעבר מאפשר להעביר את שינויי הקוד, עץ העבודה המבודד והיסטוריית השיחה המלאה אל העורך מבלי להתחיל מחדש או להעתיק קבצים. לפי המדריך, סוכן התוכנה יכול לבצע עבודה חזרתית או מורכבת, ולאחר מכן המפתח יכול לפתוח את ההפעלה ב-VS Code לצורך סקירת שינויים שורה אחר שורה, עריכה ידנית, הרצת בדיקות מקומיות במסוף המשולב, ודחיפת השינויים ישירות לבקשת המשיכה המשויכת למאגר.

קרא עוד