Stop Deals From Stalling on Unsigned NDAs

AI tracks pending NDA signatures and sends professional follow-ups. Legal reviews the messaging while the AI handles the cadence.


Why this matters

Deals stall waiting for NDAs to be signed. The legal team sends the NDA, the counterparty intends to sign but gets busy, and weeks pass without follow-up because nobody owns the reminder process. Meanwhile, business teams may start sharing confidential information prematurely, creating legal risk. Manual follow-up tracking in spreadsheets is unreliable and inconsistent.


How MultiMail solves this

MultiMail's AI agent tracks pending NDA signatures and sends professional follow-up reminders at configurable intervals. Each follow-up includes the original NDA document, signing instructions, and an appropriate escalation in urgency. Gated_send oversight ensures legal reviews the messaging before it reaches the counterparty — important because NDA-related communications can have legal implications.

1

Detect Unsigned NDAs

Your AI agent monitors your contract management or e-signature platform for NDAs that have been sent but remain unsigned past a configurable threshold.

2

Check Days Outstanding

The agent calculates how long the NDA has been pending and selects the appropriate follow-up tier: gentle reminder (7 days), firm follow-up (14 days), or urgent notice (21+ days).

3

Draft Professional Follow-Up

The AI composes a professional follow-up email that reattaches the NDA, provides signing instructions, and adjusts tone based on urgency. It references the original send date for context.

4

Legal Reviews and Sends

Under gated_send, the follow-up enters the review queue. Legal verifies the messaging, confirms the correct NDA version is attached, and approves delivery.


Implementation

Track and Follow Up Pending NDAs
python
import requests
from datetime import datetime

API = "https://api.multimail.dev/v1"
HEADERS = {"Authorization": "Bearer mm_live_xxx"}

FOLLOW_UP_DAYS = [7, 14, 21]

def check_pending_ndas(ndas: list):
    today = datetime.utcnow().date()

    for nda in ndas:
        if nda["status"] == "signed":
            continue

        days_pending = (today - nda["sent_date"]).days

        if days_pending in FOLLOW_UP_DAYS:
            tone = select_nda_tone(days_pending)
            body = draft_nda_follow_up(
                nda, tone, days_pending
            )

            requests.post(
                f"{API}/send",
                headers=HEADERS,
                json={
                    "from": "[email protected]",
                    "to": nda["counterparty_email"],
                    "subject": f"Reminder: NDA awaiting signature (sent {nda[&"cm">#039;sent_date']})",
                    "text_body": body,
                    "html_body": build_nda_html(nda, tone)
                }
            )

def select_nda_tone(days: int) -> str:
    if days <= 7: return "gentle"
    if days <= 14: return "firm"
    return "urgent"

Identify unsigned NDAs and send appropriate follow-up emails.

Draft Tone-Appropriate NDA Follow-Up
python
def draft_nda_follow_up(nda: dict, tone: str, days: int) -> str:
    templates = {
        "gentle": (
            f"Hi {nda[&"cm">#039;counterparty_contact']},\n\n"
            f"I wanted to follow up on the mutual NDA between "
            f"{nda[&"cm">#039;company']} and {nda['counterparty']} sent on "
            f"{nda[&"cm">#039;sent_date']}. We'd love to move forward with "
            f"our discussions.\n\n"
            f"The NDA is available for signature here: {nda[&"cm">#039;sign_url']}\n\n"
            f"Please let me know if you have any questions about "
            f"the terms."
        ),
        "firm": (
            f"Hi {nda[&"cm">#039;counterparty_contact']},\n\n"
            f"The NDA between {nda[&"cm">#039;company']} and {nda['counterparty']} "
            f"has been pending for {days} days. To keep our discussions "
            f"on track, could you please review and sign at your "
            f"earliest convenience?\n\n"
            f"Sign here: {nda[&"cm">#039;sign_url']}\n\n"
            f"If there are concerns about any terms, I&"cm">#039;m happy to "
            f"discuss."
        ),
        "urgent": (
            f"Dear {nda[&"cm">#039;counterparty_contact']},\n\n"
            f"The NDA sent on {nda[&"cm">#039;sent_date']} ({days} days ago) "
            f"remains unsigned. Our teams are eager to begin "
            f"substantive discussions, which require a signed NDA "
            f"per our information security policy.\n\n"
            f"Sign here: {nda[&"cm">#039;sign_url']}\n\n"
            f"Could you confirm whether there are any outstanding "
            f"concerns we can address?"
        )
    }
    return templates.get(tone, templates["gentle"])

Generate follow-up content that escalates professionally based on time elapsed.

MCP Tool Integration
typescript
"cm">// Using MultiMail MCP tools for NDA follow-ups

async function followUpPendingNDAs(ndas: PendingNDA[]) {
  const today = new Date();
  const followUpDays = [7, 14, 21];

  for (const nda of ndas) {
    if (nda.status === "signed") continue;

    const daysPending = daysBetween(nda.sentDate, today);
    if (!followUpDays.includes(daysPending)) continue;

    const tone = daysPending <= 7 ? "gentle" :
                 daysPending <= 14 ? "firm" : "urgent";

    "cm">// Send follow-up (queued for legal review)
    await mcp.send_email({
      to: nda.counterpartyEmail,
      subject: `Reminder: NDA awaiting signature (sent ${nda.sentDate})`,
      text_body: draftNDAFollowUp(nda, tone, daysPending)
    });

    "cm">// Track follow-up
    await mcp.add_contact({
      email: nda.counterpartyEmail,
      metadata: {
        nda_follow_up_count: (nda.followUpCount || 0) + 1,
        last_nda_follow_up: today.toISOString()
      }
    });
  }
}

Track and follow up on pending NDAs using MultiMail MCP tools.


What you get

Faster NDA Turnaround

Automated follow-ups reduce average NDA signing time by reminding counterparties on schedule. Deals move forward faster when the NDA isn't blocking.

Professional Escalation

Follow-ups escalate naturally from gentle reminder to firm request. The tone progression is pre-approved and consistent, maintaining professionalism throughout.

Legal Control Over Messaging

Gated send ensures legal reviews every follow-up before it reaches the counterparty. NDA-related communications can have legal implications — the AI drafts, legal approves.

Prevent Premature Information Sharing

By tracking unsigned NDAs, your organization can enforce the policy of not sharing confidential information until the NDA is executed. The tracking visibility alone reduces risk.


Recommended oversight mode

Recommended
gated_send
NDA follow-ups are external legal communications. The messaging must be professionally worded, reference the correct document, and be sent to the correct counterparty contact. Gated send ensures legal reviews each follow-up, preventing miscommunication that could delay deals or create legal exposure.

Common questions

How many follow-ups should I send before escalating?
Three follow-ups at 7, 14, and 21 days is a standard cadence. After the third follow-up, consider escalating internally (notifying the deal owner that the NDA is stalled) or reaching out to a different contact at the counterparty organization.
What if the counterparty wants to negotiate NDA terms?
Your AI agent can detect negotiation signals in replies (redline requests, term questions) and route them to your legal team for response. The agent pauses the follow-up cadence while negotiation is active and resumes tracking once a revised version is sent.
Can the agent track NDAs across different e-signature platforms?
Your AI agent integrates with your e-signature platform (DocuSign, HelloSign, PandaDoc) via its API to check signing status. MultiMail handles the email follow-ups. The agent bridges the two systems, checking status and sending reminders.
How do I handle mutual vs. one-way NDAs differently?
Maintain separate follow-up templates for mutual and one-way NDAs. Mutual NDAs may require signatures from both parties, so your agent tracks both signatories independently and follows up with whichever party hasn't signed.

Explore more use cases

The only agent email with a verifiable sender

Email infrastructure built for AI agents. Verifiable identity, graduated oversight, and a 38-tool MCP server. Formally verified in Lean 4.