Data Storing Events

While each event type allows you to perform additional monitoring based on the user’s triggering action, they can also be configured to simply store data and supplement other ongoing event types. Alloy recommends sending all relevant ongoing events even if they do not warrant additional monitoring on their own. These events can still be beneficial when being referenced by other ongoing monitoring and to detect sequential user actions that might represent suspicious activity.

Any events data supplied under the data{} object is stored in Alloy when matched with our defined set of standard schema. Even though these events aren't evaluated, the data stored can be measured or referenced later in other monitoring workflows using Alloy's internal services. Data-storing events are also valuable for providing up-to-date information to agent review teams using Alloy's UI.

For example, if an agent decides to freeze an account after reviewing the account, you can convey the status change back to Alloy using a bank_account_updated event request. Since no additional checks need to be performed/evaluated for this type of change, the event is sent to Alloy for informational purposes. This ensures that:

  • The account's latest status of "Frozen" is reflected accurately in Alloy's dashboard and visible to agent teams.
  • The account's "Frozen" status is available for reference in other ongoing monitoring policies/rules using Alloy's Account History service.

Since data-storing events are not attached to any Source Workflow, the response will not return any values under evaluations[] or journey_applications[].

{
    "event_type": "bank_account_updated",
    "event_lifecycle_id": "X99-43jf-434klj",
    "event_status": "successful",
    "data": {
        "external_account_id": "105a61e2-0dd9-4c63-858b-e9d7009cdd1d",
        "external_entity_id": "9e82d5e7-ada0-4957-a8fd-4d937c99bae8",
        "timestamp": "2024-03-25T22:44:52.284Z",
        "account_balance": 185000,
        "status": "Frozen",
        "status_detail": "Awaiting verification",
        "supplemental_data": {}
    }
}
{
    "status_code": 201,
    "event_request_token": "EV-74ddyRtVhBq3eF1EuyAk",
    "_links": {
        "self": {
            "href": "/v1/events/EV-74ddyRtVhBq3eF1EuyAk"
        }
    },
    "event": {
        "event_type": "bank_account_updated",
        "event_status": "PROCESSED",
        "data": {
            "account_number": "10426757",
            "account_number_encrypted": "b848f6488f3568c8c8ef90ad4...",
            "account_number_hashed": "de92be6b6473badcec68d9a6c23f...",
            "cif_number": null,
            "account_type": null,
            "product_code": "DDA01",
            "product_name": "Alloy Business Checking",
            "opening_date": "2023-03-22T00:00:00.000Z",
            "maturity_date": null,
            "closing_date": null,
            "activation_date": null,
            "expiration_date": null,
            "meta": {
                "somedata": "string"
            },
            "routing_number": "000123456789",
            "external_ingestion_identifier": null,
            "card_network": "visa",
            "account_name": "John Doe Business",
            "tokenization_method": null,
            "merchant_category_code": null,
            "name_on_card": null,
            "account_number_last4": null,
            "avs": null,
            "account_class": "deposit",
            "country_code": "US",
            "description": null,
            "program_name": null,
            "mcc_description": null,
            "is_linked_account": false,
            "link_timestamp": null,
            "unlink_timestamp": null,
            "currency": "USD",
            "account_hash": null,
            "account_balance": "0.00",
            "credit_limit": null,
            "status": "Frozen",
            "status_detail": "Awaiting verification",
            "as_of_date": "2024-03-25T00:00:00.000Z",
            "external_account_id": "105a61e2-0dd9-4c63-858b-e9d7009cdd1d",
            "account_token": "A-veYTeL4YRlFnRsxinwt7"
        },
        "evaluations": [],
        "journey_applications": []
    }
}


Check out the Example Scenarios section for more common monitoring use cases and to see how monitored events and data-storing events are used together.

❗️

Source Workflow Impact on Entity Fields

Although most Event Types already require specifying either the external_entity_id or entity_token field in the request payload, this field is optional by default for Bank Account and External Account create/update events, since Entities are either specified via the entities[] field instead to support many-to-many relationships (or in the case of update events, may not be changing during the update).

However, if an Event Type is mapped to a Source Workflow, the top-level entity field will become required. To future-proof your integration for new use cases, we recommend including the top-level Entity field in your Bank Account events even when it is not required. Including the top level field will not impact the Entities attached to the Account record via entities[], and is only used so that Alloy knows which Entity to attach the Source Workflow evaluation to and use for PII hydration.