Skip to content

Connect Flino with Zapier

Zapier is a no-code automation tool that chains triggers and actions across apps. This guide shows you how to build a Zap that creates an offer in Flino whenever a new deal lands in your CRM.

This guide is illustrative. The same approach works almost identically with Make, n8n, Pipedream, or your own script — the webhook endpoint is tool-agnostic.

  • An active Zapier account
  • Owner role in your Flino organisation
  • A source system with a Zapier integration (CRM, form tool, sheet, …)
  1. In Flino: Settings → Integrations → API tokens.
  2. Click New token, give it a name (e.g. “Zapier”).
  3. Create token.
  4. Immediately copy the displayed plaintext token to your clipboard.
  5. Also copy the webhook URL from the “Zapier Webhook URL” section — it looks like this: https://<your-project>.supabase.co/functions/v1/zapier-offer-import

More details under API tokens.

  1. In Zapier: Create Zap.
  2. Pick your trigger — e.g. “New Deal in Pipedrive”, “New Submission in Typeform”, “New Row in Google Sheets”.
  3. Configure and test the trigger — Zapier shows you sample data.
  1. Pick Webhooks by ZapierPOST as the next action.
  2. Configure the action:
    • URL: your Flino webhook URL from step 1
    • Payload Type: json
    • Data: the fields Flino expects — see the next section
    • Headers:
      • x-flino-token: your plaintext token
      • Content-Type: application/json

In the Data area you create key/value pairs. Map the values from your trigger output:

KeyRecommended value (from trigger)Required?
titleDeal title or form subject
external_idDeal ID or submission ID from your system
external_sourceA constant string, e.g. pipedrive or typeform
amountDeal valueoptional
currencyDeal currency or constant EURoptional
contact_nameContact’s full nameoptional
contact_emailContact’s emailoptional
company_nameCompanyoptional
offer_numberYour offer number from the source systemoptional
valid_untilDate as ISO string YYYY-MM-DDoptional

Important on external_id and external_source: these two fields together form the idempotency key. If your trigger fires the same record twice, Flino does not create the offer twice. Pick values that are truly unique in your source system.

  1. In Zapier, click Test step.
  2. Zapier sends the POST request to Flino.
  3. Expected response: HTTP 200 with body {"success": true, "created": true, "offer_id": "...", "status": "draft"}.
  4. In Flino: go to the pipeline — the new offer appears with status New.

If the test was successful: Publish Zap. From now on, every new deal/submission in your source system creates an offer in Flino automatically.

The webhook only creates a draft. To get value, you need a quick manual step:

  1. Open the offer in Flino.
  2. Fill in missing data (salutation, description, email address if needed).
  3. Send it via Send offer.
  4. Activate a follow-up sequence.

If you want to automate this step too (e.g. “send right after import”): not part of the API at the moment — sending stays manual.

ErrorCause / fix
HTTP 401: Missing x-flino-token headerAdd the header in the Zap action
HTTP 401: Invalid or unknown tokenTypo in the token or wrong org → copy again
HTTP 401: Token has been revokedToken was revoked — create a new one
HTTP 400: Field ‘title’ is requiredMapping in Zapier shows no value; re-test the trigger
HTTP 400: Field ‘currency’ must be one of: EUR, USD, CHFWrong string — set a constant or clean up the mapping
HTTP 400: Field ‘contact_email’ is not a valid email addressEmpty string or typo — leave empty (drop the field) or fix the format
HTTP 400: Invalid JSON bodySet Payload Type in Zapier to json, not form
Duplicate offersexternal_id is different per call — use a real source ID per record
  • Store the token only in Zapier’s secret field, not in the mapping.
  • One token per tool — if you also run Make or your own script, create a token per tool. If a tool is compromised, you can revoke that single token.
  • Rotate tokens on staff change.