App integration · All integrations

Real Estate Disclosure Capture with GoHighLevel

Real estate teams running GoHighLevel pipelines hit the same wall every closing: the disclosure packet, buyer representation agreement, or seller intake form lives outside the CRM. Agents email PDFs back and forth, chase signatures by phone, and re-key contact data from signed forms into GoHighLevel by hand. Every closing carries paperwork drag that costs hours and risks missed disclosures — exactly the moment the agent should be running the next listing, not chasing the last one.

Formfy's REST API and webhook events plug directly into GoHighLevel's outbound webhook actions and inbound automation triggers. Send a disclosure on stage change; receive the signed PDF back as a contact attachment within seconds.

The workflow at a glance

Trigger

A buyer or seller signs a Formfy property disclosure or intake form

Action

Formfy fires a webhook and delivers the signed PDF to GoHighLevel's contact record

Result

GoHighLevel pipeline stage advances and the disclosure is filed — no manual data entry

Step-by-step: connect GoHighLevel to Formfy

Wire Formfy property disclosure forms into your GoHighLevel CRM using webhooks and the Formfy REST API.

  1. Generate a Formfy API key

    Open the Formfy dashboard, go to Settings → API Keys, and click Create key. Copy the fk_live_… token to your password manager — Formfy displays it once. Use a fk_test_… key during setup so no live credits are consumed while you wire the GoHighLevel integration.

  2. Select a property disclosure template

    Call GET /api/v1/templates to browse Formfy's library of pre-built real estate forms — property disclosure packets, buyer representation agreements, and seller intake forms. Note the template ID you will use; pass it to the create endpoint when a GoHighLevel workflow fires.

    GET/api/v1/templatesSee in the OpenAPI spec →

  3. Subscribe GoHighLevel to the form.signed event

    POST /api/v1/webhooks with your GoHighLevel inbound webhook URL as target_url and event_types set to form.signed. Formfy returns a signing secret — add it as an X-Formfy-Signature validator in your GoHighLevel custom webhook step to verify every delivery.

    POST/api/v1/webhooksSee in the OpenAPI spec →

  4. Send the disclosure form from a GoHighLevel workflow

    In GoHighLevel, add a Webhook action to any pipeline stage or trigger. Point it at POST /api/v1/forms/{id}/send with the contact's email or phone number. Formfy delivers the disclosure by SMS or email within seconds and starts tracking signer status.

    POST/api/v1/forms/{id}/sendSee in the OpenAPI spec →

  5. Download the signed PDF into the contact record

    When the form.signed webhook fires, extract the form ID from the payload and call GET /api/v1/forms/{id}/signed-pdf to retrieve a secure download token. Use that token with GET /api/v1/files/pdf/{token} to fetch the final PDF and attach it to the GoHighLevel contact.

    GET/api/v1/forms/{id}/signed-pdfSee in the OpenAPI spec →

Send a real estate disclosure from a GoHighLevel workflow

Call this endpoint from a GoHighLevel custom webhook action to deliver a property disclosure form by SMS or email the moment a contact enters the right pipeline stage.

curl -X POST https://formfy.ai/api/v1/forms/FORM_ID/send \
  -H "Authorization: Bearer fk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "recipient_email": "{{contact.email}}",
    "recipient_phone": "{{contact.phone}}",
    "message": "Hi {{contact.firstName}}, please review and sign your property disclosure."
  }'

Frequently asked questions

Do I need Zapier or Make to connect Formfy to GoHighLevel?

No middleware required. Formfy ships a public REST API and a webhook event system. GoHighLevel supports outbound custom webhook actions and inbound webhook automations natively — you point GoHighLevel at Formfy endpoints directly and subscribe Formfy to deliver signed-form events back to GoHighLevel without any third-party integration layer.

Which real estate forms can Formfy generate and send?

Formfy supports property disclosure packets, seller and buyer representation agreements, lead intake forms, and custom consent documents. Use GET /api/v1/templates to browse the pre-built real estate library, or POST /api/v1/forms/generate to describe a custom form in plain language and let Formfy's AI build the field structure for you.

Can Formfy send disclosure forms by SMS through LeadConnector?

Yes. The POST /api/v1/forms/{id}/send endpoint accepts a recipient_phone field and delivers the signing link via SMS. GoHighLevel's LeadConnector phone numbers are optional — you can pass the contact's mobile number directly from GoHighLevel's workflow merge fields and Formfy handles the SMS delivery.

How do I trigger a disclosure form send from a GoHighLevel pipeline stage?

Inside GoHighLevel, create a Workflow trigger on pipeline stage change and add a Webhook action pointing at POST /api/v1/forms/{id}/send. Map the contact's email and phone from GoHighLevel merge fields into the request body. The disclosure lands in the client's inbox or SMS thread within seconds of the stage advancing.

How fast does GoHighLevel update when a Formfy form is signed?

Formfy queues webhook deliveries within seconds of the signing event. Once your GoHighLevel inbound webhook receives the form.signed payload, any downstream workflow — stage advancement, contact tag update, team notification — fires immediately. Formfy retries failed deliveries with exponential backoff for up to 24 hours.

How do I attach the signed PDF to a GoHighLevel contact record?

Extract the form ID from the form.signed webhook payload, call GET /api/v1/forms/{id}/signed-pdf to get a secure one-time download token, then GET /api/v1/files/pdf/{token} to fetch the file. From GoHighLevel, use an API call action or custom code step to upload the PDF bytes to the contact's document field or email it to the contact directly.

Does Formfy support multiple signers on a property disclosure?

Yes. A single Formfy form instance can route to multiple signers in sequence. Use GET /api/v1/forms/{id}/signers to inspect the current signer list and their completion status. The form.signed webhook fires once all required signers have completed — useful for dual-signature buyer agreements or co-seller disclosure packets.

What happens if a client doesn't sign the disclosure within the deadline?

Formfy fires a form.expired webhook when the signing window closes unsigned. Subscribe to that event alongside form.signed when you POST /api/v1/webhooks. Your GoHighLevel workflow can branch on the event type — re-send the form, flag the contact, or notify the agent — keeping the disclosure process on schedule.

Ready to wire GoHighLevel into Formfy?

Spin up an API key, run your first webhook, and route signed forms wherever your team already works.