Skip to content

Sending messages ​

Once your users are subscribed to a channel or two, you can send messages to them!

Think of a message as a standard Klai Action that is triggered externally. It can even contain data to populate the page, but you don't have to wait for a user to click a button, run a utility hook, or even poll your server for updates on a set interval.

Klai Action ​

Authenticated Channels ​

The Klai action messageSend can be used to send a message to channel or channels. It requires a channel key to be set under options.

Example ​

  • options.channels
yaml
// This will send a showAlert action
// to channels "channel1", "channel2" and "channel3"
[
  {
    "action": "messageSend",
    "options": {
      "actions": [
        {
          "action": "showAlert",
          "options": {
            "text": "Hello from Message",
            "title": "Hello World",
            "type": "information"
          }
        }
      ],
      "model": {
        "myModelData": "modelData"
      },
      "app": {
        "myAppData": "appModelData"
      },
      "channels": ["channel1", "channel2", "channel3"]
    }
  }
]

Full action reference: ​

messagesend.md

Anonymous channel ​

The Klai action messageSendAnonChannel can be used to send a message to channel or channels. It requires a channels key to be set under options.

Example ​

  • options.channels
yaml
// This will send a showAlert action
// to channels "channel1", "channel2" and "channel3"
[
  {
    "action": "messageSendAnonChannel",
    "options": {
      "actions": [
        {
          "action": "showAlert",
          "options": {
            "text": "Hello from Message",
            "title": "Hello World",
            "type": "information"
          }
        }
      ],
      "model": {
        "myModelData": "modelData"
      },
      "app": {
        "myAppData": "appModelData"
      },
      "channels": ["channel1", "channel2", "channel3"]
    }
  }
]

Full action reference: ​

messagesendanonchannel.md

FileMaker Script ​

The script is available in Helper file and is called API - Send Message. This script accepts an object with four keys message, channels, apiKey and domain.

  • message: it accepts an object with:
    • actions: array of Klai action objects;
    • model: object with model data;
    • app: object with app model data.
  • channels: string of channel name or array of strings;
  • apiKey: API key from corresponding app;
  • domain: domain to send message to.

Example Parameter ​

yaml
{
  "message": {
    "actions": [
      {
        "action": "showAlert",
        "options": {
          "text": "Alert from FM",
          "title": "Hello World",
          "type": "information"
        }
      }
    ],
    "model": {
      "myModelData": "modelData"
    },
    "app": {
      "myAppData": "appModelData"
    }
  },
  "channels": ["channel1", "channel2"],
  "apiKey": "BFAPI_XXXX-YYYY-XXXX",
  "domain": "my.domain.com"
}

API endpoint /message/sendmessage ​

API: Send Message ​

POST https://portal.yourdomain.com/message/sendmessage

Headers ​

NameTypeDescription
acceptstringapplication/json
content-typestringapplication/json

Request Body ​

NameTypeDescription
apiKeystringthe API key for the corresponding app
channelsarrayarray of channel names
messageobjectJSON object to be sent
message.actionsarrayJSON for an array of Klai action objects
message.modelobjectJSON object with data to be merged to model data
message.appobjectJSON object with data to be merged to app model data
{
  "message": {
    "actions": [
      {
        "action": "showAlert",
        "options": {
          "text": "Alert from Jhon",
          "title": "Hello World",
          "type": "information"
        }
      }
    ],
    "model": {
      "myModelData": "modelData"
    },
    "app": {
      "myAppData": "appModelData"
    }
  },
  "channels": ["channel1", "channel2"],
  "apiKey": "BFAPI_GENERATED-API-KEY"
}

Example request body ​

yaml
{
  "message": {
    "actions": [
      {
        "action": "showAlert",
        "options": {
          "text": "Alert from Jhon",
          "title": "Hello World",
          "type": "information"
        }
      }
    ],
    "model": {
      "myModelData": "modelData"
    },
    "app": {
      "myAppData": "appModelData"
    }
  },
  "channels": ["channel1", "channel2"],
  "apiKey": "BFAPI_GENERATED-API-KEY"
}

Klai Studio documentation