Skip to main content

What PandaDoc adds to Halo

PandaDoc is an ingest-only integration:
ModeWhat it does
IngestContracts sync into Halo, signer details are matched to companies by email/domain, and contract content is indexed as searchable knowledge.
Used for two main things:
  1. Renewal tracking — Halo can pull renewal dates and contract terms from PandaDoc directly
  2. Contract awareness — the AI knows what’s been signed, by whom, and when, so it can answer questions like “When does our contract expire?” or “Did we sign the data processing addendum?”
Connect at Integrations > PandaDoc.

Setup

Connecting

PandaDoc uses API key auth with an optional webhook shared key:
  1. In PandaDoc, generate an API key.
  2. In Halo, click Connect PandaDoc.
  3. Paste the key (and optionally a webhook shared key for verification).
  4. Submit.
Halo validates the key against PandaDoc’s documents list endpoint and stores it encrypted.

Webhook

Webhook URL: {appUrl}/api/integrations/pandadoc/webhook?team={orgId} PandaDoc appends &signature=... to the URL when sending. Verification uses HMAC-SHA256 hex of the body with your webhook shared key. Events processed:
  • document_state_changed
  • document_completed
  • document_sent
  • document_viewed
  • document_creation_completed
  • recipient_completed
You can update the webhook shared key later with PATCH on the integration.

Ingest mode

When ingest is on:
DataWhere it lands
Contractscontracts table with provider: pandadoc
Signer detailsLinked to end_users and companies by email match
Contract contentIndexed in knowledge under pandadoc:

Status mapping

PandaDoc has many internal status codes; Halo normalizes them to a simpler set:
PandaDoc statusHalo normalized
document.uploadedCreated
document.draftDraft
document.sentSent
document.viewedViewed
document.completedSigned
document.expiredExpired
document.declinedDeclined
The normalized status drives renewal status auto-rules.

Renewals from PandaDoc

When you sign a renewal contract in PandaDoc, Halo can pull:
  • Renewal date from the contract’s effective period
  • Contract term from the contract length
  • on_contract flag
Configure source priority at Settings > Renewals — see Renewals.

Notifications

PandaDoc doesn’t have its own notifications mode. When Slack is connected and the contract_event notification type is enabled, Halo posts to Slack on every relevant PandaDoc webhook event:
  • Contract signed
  • Contract sent
  • Contract viewed
  • Contract expired
  • Recipient completed
Use this to keep your sales/CS team in the loop without monitoring PandaDoc directly.

Stats

The integration page shows:
  • Total contracts synced
  • Recent activity
  • Webhook configuration status

Where to go next

Renewals

PandaDoc as a renewal data source.

Slack

Set up contract event notifications.