App integration · All integrations

Tattoo Shop Waiver Alerts in Slack via Formfy

When a walk-in client fills out a tattoo or piercing consent waiver on paper, the signed form sits in a binder nobody checks. Your artist starts the session without knowing the waiver cleared, the front desk misses the notification, and the studio runs blind on consent status. For shops juggling back-to-back appointments and multiple artists, a missing waiver can stop a session mid-prep. Teams need an instant signal the moment a waiver is signed so every artist can start with confidence.

Formfy's webhook API fires the instant a consent form is signed. Wire it to Slack and your studio channel gets a formatted alert — client name, artist, and a link to the signed PDF — before the needle touches skin.

The workflow at a glance

Trigger

A client signs a Formfy tattoo or piercing consent waiver

Action

Formfy fires a form.signed webhook that posts a formatted alert to your studio's Slack channel

Result

Artists and front-desk staff see the signed waiver notification before the session begins

Step-by-step: connect Slack to Formfy

Wire Formfy consent form signatures into Slack so your studio channel gets an instant alert the moment a client signs.

  1. Generate a Formfy API key

    Open the Formfy dashboard, navigate to Settings → API Keys, and click Create key. Save the fk_live_… token — Formfy shows it once. Use the fk_test_… key while building your relay so test signatures do not consume live plan credits.

  2. Create a Slack Incoming Webhook URL

    In your Slack workspace, open Settings & Administration → Manage Apps → Incoming Webhooks. Enable the integration, select the channel for waiver alerts — a dedicated #waivers channel keeps artist chat separate — and copy the hooks.slack.com/services/… URL.

  3. Deploy a relay that forwards Formfy events to Slack

    Set up a lightweight endpoint — a Cloudflare Worker, Vercel function, or AWS Lambda — that accepts the Formfy JSON payload and calls your Slack Incoming Webhook URL. Extract signer_email, form_id, and signed_at, then format them into a Slack message block.

  4. Subscribe Formfy to the form.signed event

    POST /api/v1/webhooks with your Bearer token, target_url set to your relay endpoint, and event_types: ["form.signed"]. Formfy returns a signing_secret — verify the X-Formfy-Signature header in your relay to ensure only genuine Formfy payloads trigger Slack alerts.

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

  5. Test the alert and confirm the signed PDF link

    Sign a test waiver from the Formfy dashboard. Within 30 seconds your relay fires, the Slack channel receives the alert, and the artist on duty sees the client name plus a link to the signed PDF returned by GET /api/v1/forms/{id}/signed-pdf.

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

Subscribe Formfy to fire on every signed consent waiver

Register your relay as a Formfy webhook subscriber. Formfy posts the form.signed payload to your relay the moment a client signs, and the relay forwards a formatted alert to your Slack channel.

curl -X POST https://formfy.ai/api/v1/webhooks \
  -H "Authorization: Bearer fk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "target_url": "https://your-relay.workers.dev/formfy-slack",
    "event_types": ["form.signed"]
  }'

Frequently asked questions

Does Formfy have a native Slack integration?

Formfy does not yet have a one-click Slack app, but the public webhook API connects consent form events to Slack in about 15 minutes. Deploy a lightweight relay that receives Formfy's form.signed payload and calls a Slack Incoming Webhook. Once built, every future signed waiver fires the Slack alert automatically without any manual steps.

Which Formfy events can trigger a Slack alert?

Five event types are live in v1: form.created, form.sent, form.viewed, form.signed, and form.expired. For tattoo and piercing studios, form.signed is the primary trigger. Pass multiple event types in the subscription array to also receive alerts on form.sent for reminders and form.expired for missed-appointment follow-up.

How do I include the signed PDF in the Slack message?

After form.signed fires, your relay calls GET /api/v1/forms/{id}/signed-pdf with the form_id from the payload. The endpoint returns a time-limited signed URL to the completed waiver. Add that URL as a Slack Button so the artist can open the client's consent with one tap before starting the session.

Can I route tattoo and piercing alerts to different Slack channels?

Yes. Create separate Formfy form instances for tattoo and piercing consents and register a different webhook subscription for each. Point each relay call to a distinct Slack Incoming Webhook URL tied to its own channel. Artists and piercers see only the alerts relevant to their work without cross-channel noise.

What data does the Formfy form.signed webhook payload include?

The payload contains form_id, signer_email, signed_at timestamp, submission_id, and a reference to the signed PDF. Your relay formats these into a Slack Block Kit message showing the client name, consent type, signature time, and a direct download link to the completed waiver in your Formfy account.

How do I verify that a webhook delivery is genuinely from Formfy?

Formfy signs every payload with HMAC-SHA256 using the signing_secret issued when you created the subscription. Your relay reads the X-Formfy-Signature header, recomputes the HMAC over the raw body, and rejects the request if the values differ. This prevents spoofed payloads from triggering false alerts in your Slack channel.

What happens if Slack's Incoming Webhook URL is down when a waiver is signed?

Formfy retries failed webhook deliveries with exponential backoff for up to 24 hours. Once your relay or Slack recovers, queued deliveries fire automatically. The Formfy dashboard's Webhook Deliveries log shows every attempt so you can replay any missed alert by hand and ensure no signed waiver falls through.

Can I send a Formfy consent form to a client directly from Slack?

Yes. Trigger POST /api/v1/forms/{id}/send from a Slack slash command or workflow with the client's email or phone number. Formfy dispatches the consent waiver by email or SMS, the client signs on any device, and when they complete it the form.signed webhook posts the confirmation back to your Slack channel.

Ready to wire Slack into Formfy?

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