> ## Documentation Index
> Fetch the complete documentation index at: https://docs.floral.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Knack

> Connect your Knack app to save meeting minutes and briefings and to use them in later briefings.

Connect Knack so Floral saves approved meeting minutes and finished briefings as records in your own Knack app. Floral also reads earlier meetings and briefings from Knack when it prepares a new briefing.

<Info>
  The Knack integration is in beta. Every Knack app is built differently, so you tell Floral which tables and fields to use. Setup takes about 30 minutes. Write to [support@floral.so](mailto:support@floral.so) if you would like help with the mapping.
</Info>

## What the connection does

| When                                                         | What happens in Knack                                                                                                                             |
| ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| You prepare a [briefing](/product/briefings)                 | Floral reads the company and up to 100 earlier meetings and briefings connected to it.                                                            |
| A briefing is finished                                       | Floral creates a record in your briefings table with the briefing text.                                                                           |
| Meeting minutes are [approved](/product/summaries-and-deals) | Floral creates a record in your meetings table with the title, date, summary, and a link back to Floral. It can also attach the minutes as a PDF. |
| The company is not in Knack yet                              | Floral creates it in your companies table with its name and CVR number.                                                                           |

Floral does not change or delete records that already exist in Knack.

## Before you start

You need:

* **Organization administrator access in Floral.**
* **Builder access to your Knack app**, so you can see its tables and fields.
* **Your Knack App ID and API key.** In the Knack Builder, open **Settings > API & Code**. Both values are shown there.

### Check your Knack tables

Your Knack app needs three tables. The names do not matter, but each table needs the fields listed below.

**Companies**

| Field      | Knack field type | What Floral uses it for                                                   |
| ---------- | ---------------- | ------------------------------------------------------------------------- |
| Name       | Short text       | The company name.                                                         |
| CVR number | Short text       | Finding the company. Store the CVR as 8 digits without spaces or letters. |

**Meetings**

| Field   | Knack field type        | What Floral uses it for                                              |
| ------- | ----------------------- | -------------------------------------------------------------------- |
| Company | Connection to Companies | The company the meeting is about.                                    |
| Title   | Short text              | The meeting title from the calendar.                                 |
| Summary | Rich text               | The summary of the meeting and a link to the full minutes in Floral. |
| Date    | Date                    | The day of the meeting.                                              |

**Briefings**

| Field   | Knack field type        | What Floral uses it for            |
| ------- | ----------------------- | ---------------------------------- |
| Company | Connection to Companies | The company the briefing is about. |
| Content | Rich text               | The full briefing.                 |

### Find the keys

Floral refers to tables and fields by their Knack keys, not by their names. A table key looks like `object_1`, and a field key looks like `field_12`.

In the Knack Builder, open **Data** and select a table. The table key is shown in your browser's address bar. Open a field's settings to see its field key. Write down the key for each table and field in the lists above.

## Connect Knack

<Steps>
  <Step title="Open the Knack settings">
    In Floral, open **Settings > CRM connections** and select **Knack**. You can also open **Settings > Sources** and choose the **CRM-forbindelser** tab.
  </Step>

  <Step title="Enter the App ID and API key">
    Paste the values into **Knack App ID** and **Knack API-nøgle**.
  </Step>

  <Step title="Fill in the mapping">
    **Knack mapping JSON** contains an example with made-up keys. Replace the example with the starter mapping below, and replace each key with the key you wrote down.

    ```json theme={null}
    {
      "companyObjectKey": "object_1",
      "companyNameFieldKey": "field_1",
      "companyCvrFieldKey": "field_2",
      "meetingsObjectKey": "object_2",
      "meetingCompanyFieldKey": "field_10",
      "meetingTitleFieldKey": "field_11",
      "meetingSummaryFieldKey": "field_12",
      "meetingDateFieldKey": "field_13",
      "briefingsObjectKey": "object_3",
      "briefingCompanyFieldKey": "field_20",
      "briefingContentFieldKey": "field_21"
    }
    ```

    Keep the quotation marks, colons, and commas exactly as shown. Every line except the last ends with a comma.
  </Step>

  <Step title="Choose whether to save internal meetings">
    Turn on **Sync internal meetings** only if meetings without external participants should also be saved in Knack. Customer meetings are always saved.
  </Step>

  <Step title="Save">
    Select **Gem Knack-forbindelse**. When the connection is saved, the status changes to **Forbundet**.
  </Step>
</Steps>

When you save, Floral checks that the App ID and API key work and that every table and field in the mapping exists in your Knack app. If a check fails, Floral does not save the connection and tells you which key to correct.

<Warning>
  Floral does not check the field types. A field with the wrong type first shows up when Floral saves meeting minutes. Always complete [Check your first sync](#check-your-first-sync).
</Warning>

When you return to change the mapping, leave **Knack API-nøgle** empty to keep the saved key.

## Optional extras

Add any of these lines to the mapping when you want Floral to fill more fields. Add the field to your Knack table first.

| Line to add                   | Knack field type   | What Floral fills in                                                        |
| ----------------------------- | ------------------ | --------------------------------------------------------------------------- |
| `"companyWebsiteFieldKey"`    | Short text or Link | The website of companies that Floral creates.                               |
| `"companyStartDateFieldKey"`  | Date               | The founding date from the CVR register, for companies that Floral creates. |
| `"meetingSummaryPdfFieldKey"` | File               | The approved minutes as a PDF.                                              |
| `"meetingDurationFieldKey"`   | Number             | The length of the recording in hours, for example `1.25`.                   |
| `"meetingStartAtFieldKey"`    | Date/Time          | The start time of the calendar meeting.                                     |
| `"meetingCreatedAtFieldKey"`  | Date/Time          | The time Floral saved the meeting.                                          |

For example, to attach the PDF, add this line to the mapping:

```json theme={null}
"meetingSummaryPdfFieldKey": "field_40",
```

Floral can also link the consultant who approved the minutes, add attendees as contacts, and copy Floral tags onto the meeting. These options need more tables and connection fields. Contact [support@floral.so](mailto:support@floral.so) to set them up together with us.

## How Floral finds the company

Floral remembers which Knack record each Floral company is linked to. When there is no link yet, it looks in this order:

1. **CVR number.** Floral searches your CVR field for the company's CVR number and links the first match.
2. **Company name**, only when you start a briefing. Floral asks you to confirm that the match is the same company before the briefing starts.
3. **Create the company.** If nothing matches, Floral creates a record in your companies table.

When approved meeting minutes are saved, Floral skips the name search. If the CVR number does not match, Floral creates the company. Add CVR numbers to your companies in Floral to avoid duplicates.

## Check your first sync

<Steps>
  <Step title="Choose a known customer">
    Pick a customer that already exists in Knack with a CVR number, and make sure the company in Floral has the same CVR number.
  </Step>

  <Step title="Approve meeting minutes">
    Approve the minutes from a meeting with that customer. The minutes show **Synced to CRM** when the meeting has been saved.
  </Step>

  <Step title="Open the meeting in Knack">
    Find the new record in your meetings table. Check that the company, title, date, and summary are filled in, and any optional fields you added.
  </Step>

  <Step title="Prepare a briefing">
    Start a briefing for the same company. Check that a new record appears in your briefings table.
  </Step>
</Steps>

## If something needs attention

| What you see                                                  | What to do                                                                                                                   |
| ------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| **Knack mapping-konfiguration skal være gyldig JSON**         | A quotation mark, comma, or bracket is missing. Compare your mapping with the starter mapping.                               |
| **Knack mapping-konfigurationen er ugyldig**                  | A required line is missing, or a key is written wrong. Table keys must look like `object_1`, and field keys like `field_12`. |
| The status is **Kræver handling**                             | Open the Knack settings and read the error under **Seneste fejl**. Correct the cause and save again.                         |
| **Knack afviste App ID eller API-nøgle**                      | The App ID or API key is wrong. Copy both again from **Settings > API & Code** in Knack.                                     |
| **Knack kunne ikke finde tabellen**                           | The table key does not exist in your app. Check the table key and that the App ID belongs to the right app.                  |
| **Feltet ... findes ikke i tabellen**                         | The field key does not exist in that table. Check that you copied the key from the right table.                              |
| A sync error contains `400`                                   | A field has the wrong type. Check the field types above.                                                                     |
| Floral creates new companies instead of finding existing ones | Check the CVR field key and that the CVR numbers in Knack are 8 digits without spaces.                                       |
| The PDF or another extra is missing on the meeting            | Check the field key and field type. If Floral cannot attach the PDF, it saves the meeting without it and shows no error.     |
| **The summary isn't linked to a company.**                    | Link the meeting to a company in Floral, then select **Retry sync**.                                                         |

Floral retries a failed save automatically a few times over several hours. You can retry sooner from the minutes.

<Warning>
  Only paste the Knack API key into the **Knack API-nøgle** field in Floral. Never send it by email, chat, or support message.
</Warning>
