Skip to content

Your First Contract

This tutorial walks through the full contract lifecycle from creation to activation. You'll use a template to start, add parties, route through approval, send for e-signature, and see the contract become Active. Takes about 8 minutes.

Prerequisites: sample data loaded (the Templates page under Contracts in the sidebar should show 5 templates). No other setup required.

1. Open the Contracts page

Click Contracts in the sidebar.

Contracts list

You see the seeded list: NDAs, MSAs, SOWs, Service Agreements, leases - each with its status badge. Click New Contract at the top.

2. Fill in the creation modal

The modal asks for:

  • Title - e.g. "NDA - Horizon Analytics"
  • Type - NDA
  • Number - optional free-text reference (e.g. CT-2026-0101); nothing is auto-generated, leave blank if you don't track numbers
  • Template - pick Standard Mutual NDA
  • Value / Currency - leave blank for an NDA
  • Start / End date - typical NDA is 1 year; pick today and today+365
  • Auto-renew - optional

Click Create. The contract lands in the editor in Draft status.

3. Review Details

The Details tab is pre-filled from the template:

Details tab

Set optional fields:

  • Renewal Notice (days, comma-separated): 30 for a single 30-day warning, or 60,30,14 for escalating reminders
  • Summary - short description
  • Internal Notes - private comments

Click Save to commit your changes. The Details tab does not auto-save - the Save button persists the whole form at once.

4. Add parties

Click the Parties tab.

Parties tab

Two parties are already there (from the template, if you used one with default parties). If empty, click Add Party for each:

Party 1 - Your side:

  • Kind: company
  • Company: pick (or create) your business from the Directory - its name fills the Display name
  • Role: Vendor
  • Requires signature: on

Party 2 - Counterparty:

  • Kind: individual
  • Person: pick (or create) the signer in the Directory (name + email, e.g. signatory@horizon.test)
  • Role: Client
  • Requires signature: on

The only party kinds are company and individual. Signing order is set per signer under Signing, not on the party. Save each party.

5. Customise content (optional)

Click Open Designer at the top-right to open the visual editor:

Contract designer

The template already provides the NDA boilerplate. Drag fields (Contract Title, Effective Date, etc.) from the left panel if you want them repositioned. Add or remove clauses by editing the Text / Clause blocks - the designer has Design and Preview modes only, there is no raw-HTML editor.

When done, click Save and then Back to return to the editor.

6. Submit for approval

Back on the Details tab, click Submit in the top bar (the transition into Submitted for Approval). A separate Submit for Review button routes through an optional internal-review step instead.

  • Status moves to Submitted for Approval
  • The editor locks (you'll see a padlock-like state on input fields)
  • An email fires to the workspace owner

From Submitted for Approval the buttons are Approve and Reject. There is no revert-to-draft transition; once a contract leaves Draft use Clone to new Draft to start a fresh editable copy. Note: separation of duties is enforced by default - you cannot approve a contract you created, so a solo owner must either invite a collaborator with approval permission or disable SOD in automation settings.

7. Approve

Click Approve (a collaborator other than the drafter must do this while SOD is on - see the note above).

  • Status moves to Approved
  • Approval is recorded in the History tab

The contract is now ready to send.

8. Send for signature

Click Send for Signature.

FoxCLM:

  • Generates a unique share token
  • Moves the contract to Out for Signature
  • Fires the share_contract workflow action (if configured)
  • Emails each signer of a requires_signature party a link carrying a per-signer token (the token identifies the signer; there is no party query parameter):
    https://your-viewer-host/sign/<token>

Click the Signatures tab to see generated signing links (copy the URL for party 1 / party 2 if you want to test locally).

9. The public signing page

Open your signing link in an incognito window (or share it with the counterparty):

Public signer page

The page shows:

  • Contract title and number
  • Status (Out for Signature) and signed count ("0 of 2 signed")
  • Contract body below

Scroll down to the Sign Contract form:

Signature pad

  • Signer picks their party (auto-selected from the URL)
  • Enters full legal name
  • Picks Type (name as styled text) or Draw (canvas pad)
  • Ticks the legal acknowledgement checkbox
  • Clicks Sign and submit

The page reloads: "Signed! 1 of 2 signed". Repeat for the counterparty's link.

10. The contract activates

When both parties have signed:

  • FoxCLM sets signed_at on the contract
  • A workflow transition Out for Signature -> Active with condition signed_at is_not_null fires
  • Status badge turns green (Active)

Back in the admin UI, the Signatures tab now shows both signatures with signer name, type, timestamp, and IP address.

The History tab records the whole arc:

History tab

Every status change, every action, every signer.

11. What happens next

If the template had a default obligation schedule:

If auto-renew is on and the end date passes: FoxCLM extends the end date by renewal_term_days and transitions to Renewed.

Otherwise, you manage renewal manually by clicking Amend (to create a linked amendment) or waiting for Expiring Soon to trigger renewal warnings.

Tips

  • Always add a signing order even if it's nominal (0, 1). It controls how parties appear on the signing page.
  • Pick Typed signatures when parties are technically unsophisticated - drawing on a desktop is awkward and people miss the draw control.
  • Use the template's default obligations whenever you can. Manually adding the same five obligations to every new contract is wasted work.
  • Watch the History tab. It's your audit trail for disputes, compliance audits, or just "who approved this, when?".

What's next

FoxCLM Documentation