Ylem documentation
  • 🗒️General information
    • Introduction to Ylem
    • Quick start guide
    • Release notes
  • 🔬Open-source edition
    • Installation
    • Usage of Apache Kafka
    • Task processing architecture
    • Configuring integrations with .env variables
  • 💡Integrations
    • Connecting an integration
    • Library of integrations
      • Amazon Redshift
      • Apache Kafka
      • APIs
      • Atlassian Jira
      • AWS Lambda
      • AWS RDS
      • AWS S3
      • ClickHouse
      • ElasticSearch
      • E-mail
      • Google Big Query
      • Google Cloud SQL
      • Google Pub/Sub
      • Google Sheets
      • Immuta
      • Incident.io
      • Jenkins
      • Hubspot
      • Microsoft Azure SQL
      • MySQL
      • OpenAI ChatGPT
      • Opsgenie
      • PostgreSQL
      • PlanetScale
      • RabbitMQ
      • Salesforce
      • Slack
      • Snowflake
      • Tableau
      • Twilio. SMS
      • WhatsApp (through Twilio)
    • Initial demo data source
  • 🚡Pipelines
    • Pipeline management
    • Tasks
      • Aggregator
      • API Call
      • Code
      • Condition
      • External trigger
      • Filter
      • For each
      • GPT
      • Merge
      • Notification
      • Query
      • Pipeline runner
      • Processor
      • Transformer
    • Running and scheduling pipelines
    • Library of templates
    • Environment variables
    • Mathematical functions and operations
    • Formatting of messages
  • 📈Statistics and profiling
    • Statistics of runs
    • Slow tasks
  • 📊Metrics
    • Metric management
    • Using previous values of a metric
  • 💼Use cases, patterns, templates, examples
    • Use cases
    • Messaging patterns
      • Datatype Channel
      • Message Dispatcher
      • Messaging Bridge
      • Message Bus
      • Message Filter
      • Message Router
      • Point-to-Point Channel
      • Publish-Subscribe Channel
      • Pull-Push
    • Functional use cases
      • Streaming from Apache Kafka and messaging queues
      • Streaming from APIs
      • Streaming from databases
      • Data orchestration, transformation and processing
      • Usage of Python and Pandas
      • KPI Monitoring
      • OKRs and custom metrics
      • Data Issues & Incidents
      • Reporting
      • Other functional use cases
    • Industry-specific use cases
      • Finance and Payments
      • E-commerce & Logistics
      • Customer Success
      • Security, Risk, and Anti-Fraud
      • Anti-Money Laundering (AML)
  • 🔌API
    • OAuth clients
    • API Reference
  • 👁️‍🗨️Other resources
    • FAQ
    • Our blog on Medium
Powered by GitBook
On this page
  • Schedule generation of commercial reports and send them to BI software or directly to stakeholders
  • Streaming monitoring information about failed payments
  • Streaming monitoring information about overpaid orders
  • Streaming monitoring information about unallocated bank transfers
  • Filtering data sets by various factors on the fly

Was this helpful?

Edit on GitHub
  1. Use cases, patterns, templates, examples
  2. Industry-specific use cases

Finance and Payments

PreviousIndustry-specific use casesNextE-commerce & Logistics

Last updated 8 months ago

Was this helpful?

The financial industry is an industry where an organization needs to know about any good or positive event related to customers' accounts as fast as possible. Therefore receiving such information is a real-time mode is vital for many departments from BI to risk, operations, or compliance. And that's what Ylem is good at.

Schedule generation of commercial reports and send them to BI software or directly to stakeholders

Streaming monitoring information about failed payments

Streaming monitoring information about overpaid orders

In case an organization accepts payments from customers with direct bank transfers, it opens a potential for mistakes made in the references or amount.

The following pipeline can help to control and find overpaid orders or invoices.

Streaming monitoring information about unallocated bank transfers

Another popular modification of the previous two pipelines is to monitor unallocated bank transfers. This means bank transfers made by customers that the system was not able to allocate to any order, invoice, or any other purchased item.

In this case, it is up to you to decide what to do with this transfer. Either return it, try allocating it manually, or contact the customer and ask about it.

That's how the typical pipeline may look like:

Filtering data sets by various factors on the fly

Let's imagine we have the following dataset and we need to filter it in various ways:

[
   {
      "amount":250,
      "created_at":"2022-10-01 16:01:11",
      "currency":"USD",
      "id":1,
      "organization_id":1,
      "status":"dispatched",
      "updated_at":"2022-10-01 16:01:11"
   },
   {
      "amount":250,
      "created_at":"2022-10-01 16:01:11",
      "currency":"USD",
      "id":2,
      "organization_id":1,
      "status":"paid",
      "updated_at":"2022-10-01 16:01:11"
   },
   {
      "amount":3677.2,
      "created_at":"2022-10-01 16:01:11",
      "currency":"USD",
      "id":3,
      "organization_id":2,
      "status":"completed",
      "updated_at":"2022-10-01 16:01:11"
   },
   {
      "amount":21.87,
      "created_at":"2022-10-01 16:01:11",
      "currency":"EUR",
      "id":4,
      "organization_id":1,
      "status":"assembled",
      "updated_at":"2022-10-01 16:01:11"
   },
   {
      "amount":21.87,
      "created_at":"2022-10-01 16:01:11",
      "currency":"EUR",
      "id":5,
      "organization_id":4,
      "status":"assembled",
      "updated_at":"2022-10-01 16:01:11"
   },
   {
      "amount":341.76,
      "created_at":"2022-10-01 16:01:11",
      "currency":"EUR",
      "id":6,
      "organization_id":1,
      "status":"complete",
      "updated_at":"2022-10-01 16:01:11"
   },
   {
      "amount":2110.76,
      "created_at":"2022-10-01 16:01:11",
      "currency":"USD",
      "id":7,
      "organization_id":3,
      "status":"new",
      "updated_at":"2022-10-01 16:01:11"
   },
   {
      "amount":127.89,
      "created_at":"2022-10-01 16:01:11",
      "currency":"USD",
      "id":8,
      "organization_id":3,
      "status":"new",
      "updated_at":"2022-10-01 16:01:11"
   },
   {
      "amount":127.9,
      "created_at":"2022-10-01 16:01:11",
      "currency":"EUR",
      "id":9,
      "organization_id":4,
      "status":"new",
      "updated_at":"2022-10-01 16:01:11"
   },
   {
      "amount":344.44,
      "created_at":"2022-10-01 16:01:11",
      "currency":"USD",
      "id":10,
      "organization_id":5,
      "status":"paid",
      "updated_at":"2022-10-01 16:01:11"
   }
]

Let's look at the following 4 examples:

Filter: 
#(status == "assembled")#

Result:
[
   {
      "amount":21.87,
      "created_at":"2022-10-01 16:01:11",
      "currency":"EUR",
      "id":4,
      "organization_id":1,
      "status":"assembled",
      "updated_at":"2022-10-01 16:01:11"
   },
   {
      "amount":21.87,
      "created_at":"2022-10-01 16:01:11",
      "currency":"EUR",
      "id":5,
      "organization_id":4,
      "status":"assembled",
      "updated_at":"2022-10-01 16:01:11"
   },
   {
      "amount":67.01,
      "created_at":"2022-10-01 16:01:11",
      "currency":"EUR",
      "id":12,
      "organization_id":2,
      "status":"assembled",
      "updated_at":"2022-10-01 16:01:11"
   }
]

Filter:
#(status == "assembled")#.amount

Result:
[
   21.87,
   21.87,
   67.01
]

Filter:
#(status == "assembled").amount

Result: 21.87

Filter: 
#(amount < 30)#

Result: 
[
   {
      "amount":21.87,
      "created_at":"2022-10-01 16:01:11",
      "currency":"EUR",
      "id":4,
      "organization_id":1,
      "status":"assembled",
      "updated_at":"2022-10-01 16:01:11"
   },
   {
      "amount":21.87,
      "created_at":"2022-10-01 16:01:11",
      "currency":"EUR",
      "id":5,
      "organization_id":4,
      "status":"assembled",
      "updated_at":"2022-10-01 16:01:11"
   }
]

Filtering data from large data sets is one of the most common and important tasks for payment operations. One of the powerful instruments Ylem offers for that is with GJSON query language.

💼
Transformer
Possible pipeline
An SQL example how to retrieve financial data
Generated CSV report
Possible pipeline
Possible data query
Slack notifications
Potential pipeline
Potential SQL query to retrieve data
Potential message to send to stakeholders