Skip to main content

Vendor Notification Topics & Avro's

There are different types notifications in vendor modernization

  1. Workflow Notification
  2. Email Notification
  3. Validate Notification
  4. Duplicate vendor Notification

Workflow Notification:

In the vendor journey, there are different approvals required to onboard a vendor. In each workflow stage, we need to notify the procurement team and data steward based on the approval process.

Email Notification:

In the Vendor creation/update flow, we need to send an email notification to the procurement team, Data steward, and supplier(If Digital journey) to know the vendor's status.

Validate Notification:

In the upsert vendor, we need to validate the input data. If we find any validations we need to publish those validation errors to the notification topic.

Duplicate vendor Notification:

In the Vendor create/update case we need to notify using duplicate notification.

Draft Version of Vendor Notification’s:

Use cases for Notifications:

  1. Notification For validations: After consuming the data from topic we need to check the validation errors, if we found validation errors we need send to Notification topic

    -> If only validation errors

   {
"header": {
"correlationId": "jhg67-dsajasd-3asda",
"eventType": "validation",
"createdBy": "n.n.reddy@maersk.com",
"createdTimestamp": 78987667876,
"lastUpdatedBy": "k.rao@maersk.com",
"lastUpdatedTimestamp": 8656788766
},
"vendorCode": "76545678",
"entityStatus": "Active",
"errorDetails": {
"message": "request failed with validation errors",
"detailedErrors": [
{
"field": "organizationName",
"value": "MAERSK &%***",
"message": "organization name must match [A-Z]$ pattern"
}
]
}
}

-> If its failed with server issue

{
"header": {
"correlationId": "jhg67-dsajasd-3asda",
"eventType": "validation",
"createdBy": "n.n.reddy@maersk.com",
"createdTimestamp": 78987667876,
"lastUpdatedBy": "k.rao@maersk.com",
"lastUpdatedTimestamp": 8656788766
},
"vendorCode": "76545678",
"entityStatus": "Active",
"errorDetails": {
"message": "unable to proceed with validation checks due to <reason>",
"detailedErrors": null
}
}
  1. Notification for duplicate vendors:

In Vendor journey after validation checks , we need to check duplicate as well. if we found duplicate vendors

  {
"header": {
"correlationId": "jhg67-dsajasd-3asda",
"eventType": "validation",
"createdBy": "n.n.reddy@maersk.com",
"createdTimestamp": 78987667876,
"lastUpdatedBy": "k.rao@maersk.com",
"lastUpdatedTimestamp": 8656788766
},
"vendorCode": "76545678",
"entityStatus": "Active",
"duplicateVendors": [
{
"vendorId": "IN85678876",
"organizationName": "INDIAN MAERSK GLOBAL",
"status": "Active",
"cityCode": "MUM123",
"iso2CountryCode": "IN"
},{
"vendorId": "IN8756788",
"organizationName": "MAERSK GLOBAL",
"status": "Active",
"cityCode": "PUN123",
"iso2CountryCode": "IN"
},
]
}
  1. Email Notification will be sent based on the below conditions. If the Vendor save into staging without any validations and duplication erros, then --> If non Digital flow, need to inform Procurement team and DS --> if Digtal journey ,then we need to inform Procurement team , DS and supplier

    Note: In below notification we need to put the email ids based on above conditions

    If it is digital Journey:

{
"header": {
"correlationId": "jhg67-dsajasd-3asda",
"eventType": "email",
"createdBy": "n.n.reddy@maersk.com",
"createdTimestamp": 78987667876,
"lastUpdatedBy": "k.rao@maersk.com",
"lastUpdatedTimestamp": 8656788766
},
"vendorCode": "76545678",
"emailDetails": {
"subject": "Vendor Creation!!",
"reciepints": [
{
"type": "SUPPLIER",
"value": "supplier@maersk.com"
}
],
"messageDetails": [
{
"type": "SUPPLIER",
"value": "Updated tax details"
}
],
"workflowDetails": {
"status": "pending/approved/rejected/resubmit",
"message": "<workflow comments>",
"lastUpdatedTimestamp": "<last updated date>",
"lastUpdatedBy": "<last updated by>"
}
}
}

If it is non-digital Journey:

 {
"header": {
"correlationId": "jhg67-dsajasd-3asda",
"eventType": "email",
"createdBy": "n.n.reddy@maersk.com",
"createdTimestamp": 78987667876,
"lastUpdatedBy": "k.rao@maersk.com",
"lastUpdatedTimestamp": 8656788766
},
"vendorCode": "76545678",
"emailDetails": {
"subject": "Vendor Creation!!",
"reciepints": [
{
"type": "PROCURMENT",
"value": "procuerment@maersk.com"
}
],
"messageDetails": [
{
"type": "PROCUERMENT",
"value": "Please update the tax details"
}
],
"workflowDetails": {
"status": "pending/approved/rejected/resubmit",
"message": "<workflow comments>",
"lastUpdatedTimestamp": "<last updated date>",
"lastUpdatedBy": "<last updated by>"
}
}
}
  1. If Vendor is landed into workflow we need to call workflow notification with complete details
{
"header": {
"correlationId": "jhg67-dsajasd-3asda",
"eventType": "workflow",
"createdBy": "n.n.reddy@maersk.com",
"createdTimestamp": 78987667876,
"lastUpdatedBy": "k.rao@maersk.com",
"lastUpdatedTimestamp": 8656788766
},
"vendorDetails": {
"vendorCode": "",
"organizationName": "R & M",
"isoCountryCode": "PA"
},
"workflowDetails": {
"workflowProcessId": "71c40832-16bc-11ef-9872-22c77187d806",
"workflowName": "Vendor_workflow",
"differences": [
{
"field": "organizationName",
"previous": "MAERSK India",
"current": "MAERSK GLOBAL"
}
],
"workflowStates": [
{
"taskId": "90c40832-16bc-11ef-9872-22c77187d806",
"name": "Data Steward",
"status": "APPROVED",
"approverComments": [
{
"lastUpdatedTime": 1716238493005,
"comment": "Tax is valid"
}
]
},
{
"taskId": "89c40832-16bc-11ef-9872-22c77187d806",
"name": "Procurment Approval",
"status": "PENDING",
"approverComments": null
}
]
}
}

Flow Diagrams for Notifications:

Was this page helpful?