Building integrations

How do I map a board date field correctly in an integration?

Rebuild the date as year-month-day text in a helper field and map that field instead of the raw date.

Fix

Short answer: Board dates reach integrations in different text formats. Add a text field that rebuilds the date as year-month-day, and map that field instead of the raw date.

Why it happens

  • A date column in a child table arrives as a date-time string with a time zone.
  • A date field outside a table arrives in a different format.
  • So dateTimeFromText() can fail at runtime, and a direct mapping into another date field can fail.

How to fix it

  1. Add a text field next to the date. If the date is a table column, add the text field to the same table.
  2. Make it computed with concatenate(Start_Date.year().toText(), "-", Start_Date.month().toText(), "-", Start_Date.day().toText()). Replace Start_Date with your field ID. This gives unpadded values such as 2024-3-5. If the target needs two-digit months and days, use Start_Date.toText("mm") and Start_Date.toText("dd") for those parts.
  3. Publish the board, then click Refresh fields in the integration's trigger and action.
  4. Map the text field, not the raw date, in the target action, for example Update an item on a dataform.
  5. Test the action again.

To set a date relative to the item, use now(). For example, now() + 365 gives a date one year later. now() returns a date-time and today() returns a date, both in UTC, and both update whenever the form is modified or submitted. See date expressions.

For trigger and action setup, see the Kissflow Board connector.

Related answers