Attachments and documents

How do I send, upload or copy attachments in an integration, and what isn't supported?

Map the attachment field itself, send files to external APIs with Make an HTTP call (Custom) and Form Data, and pass the actual file when you upload through the Kissflow API.

How-to

Short answer: Map the attachment field itself, not its sub-properties. To send files to another system, use Make an HTTP call (Custom) with a Form Data body. To upload into Kissflow through the API, send the actual file, not an attachment object or a link.

Why it happens

  • An attachment field holds a list of files. Mapping the wrong part of it, or the whole output with *, sends the wrong value or extra files.
  • The Kissflow attachment upload API needs the file itself in the request body. An attachment object or a file reference from another system fails with errors such as source.on is not a function or InvalidArguments.
  • Passing email attachments straight into Create an item fails with KISSFLOW_ERROR_10220, or only the first file comes across.

How to fix it

To save email or Outlook attachments into an item:

  1. After the email trigger, add Make an HTTP call (Custom) that calls the Kissflow API for adding an attachment to a form field.
  2. Set the body type to Form Data. Add the attachment key and map it to Attachments[*].key, so every attachment in the email is sent.
  3. For board items, use the board attachment endpoint. A malformed URL returns "access denied".

To send form attachments to an external API:

  1. Use Make an HTTP call (Custom) with POST and Form Data.
  2. If one key carries several files, add square brackets to its name, for example attachment[]. This fixes a datatype_mismatch error.

To copy an attachment to another flow, SharePoint or a dataset:

  1. Pick the attachment field from the field dropdown. Don't use the formula builder. If that fails, map its key.
  2. When mapping HTTP output, expand it and select the specific attachment field instead of the * mapping.
  3. A board attachment field takes a mapping from only one source field. To bring over several process attachment fields, add one board attachment field for each.

To attach files to an integration email, map them in the email action's Attachments section, not the body. Each attached file can be up to 10 MB.

Important

These aren't supported: converting an attachment to Base64 for an external API, AI extraction on a Smart attachment file uploaded through the API or an integration, adding an attachment to a dataform record through the API, and downloading dataset attachments through the API.

Related answers