Expensify Events

Cloud Elements currently supports events via polling or webhooks depending on the endpoint.

  • Polling is a mechanism where Cloud Elements executes the configured query every n minutes and captures the changed information.
  • Webhooks are when the provider lets Cloud Elements know what information has changed. Note that additional endpoint setup may be required prior to creating your element instance.
Note: Cloud Elements normalizes only the objectId, objectType, and eventType event data. Event data also contains raw data, which the provider returns. The raw data varies based on the endpoint.

If you would like to see more information on our Events framework, see Events Overview.

In order to enable polling, add these extra configurations to your instance JSON:

"event.notification.enabled": "true",
"event.notification.callback.url": "<INSERT_YOUR_APPS_CALLBACK_URL>",
"event.poller.configuration": "<SEE_BELOW>"

instance JSON with polling events enabled:

{
  "element": {
    "key": "expensify"
  },
  "configuration": {
    "partner.user.id": "<INSERT_EXPENSIFY_EMAIL>",
    "partner.user.secret": "<INSERT_EXPENSIFY_PARTNER_USER_SECRET>",
    "event.notification.enabled": "true",
    "event.notification.callback.url": "<INSERT_YOUR_APPS_CALLBACK_URL>",
    "event.poller.configuration": {
      "reports": {
        "url": "/hubs/payment/reports?where=startDate ='${date:yyyy-MM-dd}'",
        "idField": "reportId",
        "datesConfiguration": {
          "updatedDateField": "created",
          "updatedDateFormat": "yyyy-MM-dd HH:mm:ss",
          "updatedDateTimezone": "GMT",
          "createdDateField": "created",
          "createdDateFormat": "yyyy-MM-dd HH:mm:ss",
          "createdDateTimezone": "GMT"
        }
      }
    }
  },
  "tags": [
    "<INSERT_TAGS>"
  ],
  "name": "<INSERT_INSTANCE_NAME>"
}