Legal contract intake desk your teams use instead of email

One place for sales and ops to request an NDA or vendor agreement, watch its status, and let legal launch the contract in a single click.

App
IroncladSlack BotGeneral Input DatabaseOperationsDocument ProcessingNotifications & Alerts
PromptCreate

Build me a legal contract intake desk that my business teams open instead of emailing legal. Sales, procurement, and ops submit contract requests through it, legal works the resulting queue, and approved requests get launched as real contract workflows in Ironclad. Store the request rows in the General Input Database so the app has its own record of every submission alongside the live state in Ironclad.

The main screen is a request form. The requester picks what they need from a short list of request types (NDA, vendor agreement, order form), names the counterparty, and fills in the deal terms: contract value, term length, start date, whether it auto renews, governing law, payment terms, and a free text box for anything non standard. They can attach a draft document, add a business justification, and set a needed by date. On submit, save a request row in the General Input Database capturing the submitter's identity and email, every field above, the uploaded draft, a status, a triage flag, and empty slots for the Ironclad workflow id and link that get filled in later.

Apply a triage rule at submit time and show the result on the row. Mark a request low touch when it is a standard request type, every required field is filled in, and the terms sit inside the thresholds I configure, for example contract value under a ceiling, a standard term length, no custom indemnity or liability language, and governing law left at the default. Anything with non standard terms or a missing field goes to a needs legal input column instead, and the Review and launch button stays disabled on those rows until a member of the legal team clears the flag or fills in the gap. Make the thresholds easy to edit in one place.

Give the app two main views besides the form. A queue view for legal shows every request as a column board: New, Low touch, Needs legal input, In Ironclad, and Completed, with the counterparty, request type, value, requester, and age on each card. A my requests view shows a requester the live status of their own submissions only. Enforce this as a real permission rule: a viewer sees only the rows they submitted unless their email is on a configurable legal team list, in which case they see everything and get the queue view. Deal terms should not leak between business teams.

Opening a request shows the full detail: the submitted terms, the attached draft, the triage flag and why it was set, and once the contract exists, the live Ironclad state. Pull that state with Retrieve a Workflow for the linked workflow, and show where it currently sits along with the audit trail of step transitions from Get Workflow Turn History so a requester can see it moved from review into approval without asking anyone. Use List Workflows to refresh status across the whole queue in one pass, and page through results rather than assuming a single page covers everything.

Every request has a Review and launch button that kicks off a background agent. The agent reads the request row and the attached draft, then calls List Workflow Schemas to see the contract templates configured in Ironclad and picks the one that matches the request type and the terms it just read. It then calls Get Workflow Launch Schema for that template to resolve the required fields. This part matters: Ironclad launch forms are dynamic, so the agent must read the launch schema and resolve the actual field ids before it builds the launch body, never guessing at field names. It maps the request's counterparty and deal terms onto those resolved fields, and if a required field cannot be filled from the request, it stops rather than inventing a value, moves the row to needs legal input, and notes exactly which field is missing.

When the fields resolve cleanly, the agent starts the contract with Launch a Workflow, attaches the submitted draft to it with Upload Workflow Document, and posts a kickoff summary to the contract's activity feed with Create Workflow Comment. That comment should be genuinely useful to the lawyer who picks this up: who requested it, the counterparty, the key deal terms, whether triage called it low touch or flagged something non standard, and anything in the draft worth a closer look.

When the agent finishes, it writes the new workflow id and a link to it back into the app row, moves the row to In Ironclad, and posts a message to the legal channel in Slack with Send a Message so the assigned lawyer knows what landed. The Slack message should name the counterparty and request type, say whether it is low touch or needs a closer read, name the requester, and link straight to the contract in Ironclad. Post it as the bot rather than as whoever connected the account, so notifications are not misattributed to one person. If the launch fails at any step, leave the row in place with the error visible in the app instead of silently failing, so legal can retry.

What does this prompt do?

  • A request form where anyone picks what they need (NDA, vendor agreement, order form), names the other company, fills in the deal terms, and attaches a draft.
  • A queue for the legal team showing every request in columns, with simple standard requests marked low touch and anything unusual or incomplete held in a needs legal input column.
  • A Review and launch button that starts the matching contract in Ironclad, attaches the draft, and posts a kickoff summary on the contract's activity feed.
  • Requesters see the live status of their own submissions, and your legal channel in Slack gets a message with the contract link whenever a new one starts.

What do I need to use this?

  • An Ironclad account with permission to launch contracts and upload documents
  • Your contract templates already set up in Ironclad
  • A Slack workspace with a channel for the legal team
  • The list of email addresses that count as the legal team, since they see every request while everyone else sees only their own

How can I customize it?

  • Which request types appear on the form, and which Ironclad template each one maps to
  • The rules that decide low touch, for example a deal value ceiling, standard term lengths, or governing law left untouched
  • Which Slack channel gets notified, and whether the message goes to the channel or straight to the assigned lawyer

FAQs

Do the people submitting requests need an Ironclad login?
No. They just open the app, fill in the form, and follow the status of their own requests. Only the legal team's Ironclad connection is used to start contracts.
Can someone see other people's contract requests?
Only if their email is on the legal team list you set up. Everyone else sees just the requests they submitted themselves, which keeps deal terms private between the requester and legal.
What happens if a request is missing information?
It lands in the needs legal input column instead of being launched, so a lawyer can chase the missing detail before any contract is started. The same happens when the terms look non standard.
Does this work with our own contract templates?
Yes. It reads the templates already configured in your Ironclad account and matches each request type to one of them, so nothing new has to be built.
Can we still work on the contract in Ironclad afterwards?
Yes. The app starts the contract, attaches the draft, and posts a summary. Everything after that, including review, approvals, and signature, happens in Ironclad exactly as it does today.

Related templates

Review desk for portal forms your team still fills in by hand

Stage a batch of filings overnight, then approve each completed form from a screenshot before anything is ever submitted.

Kernel
Google Sheets
Slack Bot
App
Client-by-client cold email pipeline review for agencies

Pick a client and a date range to see sent, replies, meetings booked and the real deal value your cold email produced, campaign by campaign.

Instantly
HubSpot
Slack Bot
App
Find the customers stuck contacting support again and again

A board that ranks the people who opened three or more separate support conversations this month, reads their threads, and files the real fix.

Kustomer
Linear
General Input Database
App
Catch the trials quietly dying before the card gets charged

Open one desk each morning to see every account still in a trial, ranked by how much money is at stake against how little they have actually used.

Intercom
Stripe
General Input Database
App
Filter every signed Ironclad contract and brief it on demand

Search, filter and sort your whole signed contract repository, then have an assistant read any contract and write a plain English brief back onto the row.

Ironclad
Google Drive
App
Audit what Intercom's Fin AI actually resolved before you pay

Review every conversation Fin closed as resolved, judge which ones actually stuck, and see what the gap is worth against your bill.

Intercom
Google Sheets
Slack Bot
App

Stop taking contract requests by email.

Give your business teams one form and your legal team one queue, with contracts starting in Ironclad the moment a request is approved.