This workflow captures customer KYC details through an n8n Form, validates the submitted input, sends the cleaned data to OpenAI for automated risk profiling, formats the AI response and routes the result based on whether the applicant is classified as High Risk or not. High-risk cases are saved separately and trigger a Slack alert, while lower-risk cases are simply logged into Google Sheets for recordkeeping and review.
IncomeGeographyOccupationThe KYC Risk Profiling Form workflow automates the first layer of customer risk assessment by collecting basic applicant information and using AI to classify the risk level. Instead of manually reviewing every entry, the workflow accepts a form submission, validates the data and sends it to an AI model that returns a structured risk decision.
Once the AI analysis is returned, the workflow extracts the important risk fields, formats them into a clean structure and checks whether the applicant should be considered High Risk. If the risk category is high, the record is routed into a separate review path where it is saved and also sent to Slack as an alert. If the customer is Low or Medium risk, the record is saved without triggering an alert.
This makes the workflow useful as a lightweight KYC intake and triage layer, especially for teams that want faster screening without building a full compliance platform.
This workflow is useful for businesses and teams that need a simple way to screen customer or applicant risk during intake.
It is especially helpful for teams that want to automate basic risk profiling before manual review.
Before using this workflow, make sure you have the following:
You will need to configure:
This workflow expects the form to collect the following exact field names:
IncomeGeographyOccupationThese names are important because they are used directly inside the validation and AI nodes.
The JSON shows two separate Google Sheets append nodes:
Used by:
Save High Risk RecordRecommended columns based on workflow output:
riskCategoryincomegeographyredFlagsUsed by:
Save Normal Risk RecordRecommended columns based on workflow output:
riskCategoryredFlagsincomegeographyoccupationYou must connect a Slack workspace and choose a valid destination channel in:
Send High Risk AlertImport the provided JSON file into your n8n workspace.
After import, the workflow will appear as:
KYC-RISK-FORM
This workflow follows the structure below:
KYC Form Submission
→ Validate KYC Input
→ Ai Assign The Risk Category
→ Process AI Response
→ Format Final Data
→ Check High Risk
├── High Risk → Format the Data For Sheet → Save High Risk Record → Send High Risk Alert
└── Low / Medium Risk → Save Normal Risk Record
This structure creates a simple but useful KYC screening pipeline.
KYC Form Submission
This is the entry point of the workflow. It creates a user-facing form inside n8n.
KYC_FORM
numbertruetruetrueThis form acts as the customer KYC intake point.
Validate KYC Input
This Code node validates the incoming form data before it is sent to AI.
The workflow checks:
Income must be greater than 0Geography must not be emptyOccupation must not be emptyIncome into a numeric valueGeography to uppercaseisValidvalidationErrorscreatedAtIncomeGeographyOccupationisValidvalidationErrorscreatedAtAlthough this node generates isValid and validationErrors, the current JSON does not include an IF node to stop invalid submissions before they reach the AI step. That means invalid or incomplete records may still continue through the workflow unless you manually extend it later.
So while validation is present, it is currently used as a data preparation step, not as a hard blocking gate.
Ai Assign The Risk Category
This node sends the validated KYC data to OpenAI (gpt-4o-mini) for automated risk classification.
The prompt asks the model to:
Assign a risk category:
LowMediumHighList any red flags found
Return the original applicant details exactly as received
IncomeGeographyOccupationThe AI is told to classify as High Risk if:
The AI is told to classify as Medium Risk if:
The AI is told to classify as Low Risk if:
The prompt explicitly requests valid JSON in this structure:
{
"riskCategory": "High",
"redFlags": ["flag1", "flag2"],
"income": "5000",
"geography": "INDIA",
"occupation": "Software Engineer"
}
This structured format is important because the next node depends on it.
Process AI Response
This Code node processes the raw AI response and converts it into clean workflow fields.
riskCategoryredFlagsredFlagTextincomegeographyoccupationIf the AI output cannot be parsed correctly, the node returns:
riskCategory = UnknownredFlagserror field with the parsing error messageThis makes the workflow more stable when handling imperfect AI responses.
Format Final Data
This Set node standardizes the processed AI result into a cleaner output structure.
riskCategoryredFlagsincomegeographyoccupationThis step prepares the record for final risk routing.
Check High Risk
This IF node checks whether:
riskCategory == High
riskCategory = HighThe record goes to the high-risk path:
Format the Data For SheetSave High Risk RecordSend High Risk AlertriskCategory is not HighThe record goes to the normal-risk path:
Save Normal Risk RecordThis is the main decision point in the workflow.
Format the Data For Sheet
This Set node formats high-risk records before saving them.
riskCategoryincomegeographyredFlagsThis high-risk output currently does not include occupation in this specific formatting node, even though it exists earlier in the workflow.
That means if you want occupation saved into the high-risk sheet, you would need to add it manually later.
Save High Risk Record
This Google Sheets node appends high-risk KYC records to a dedicated sheet.
riskCategoryincomegeographyredFlagsThis sheet acts as your high-risk review register.
Send High Risk Alert
This Slack node sends a real-time alert when a high-risk applicant is detected.
The alert includes:
This helps compliance or operations teams react quickly instead of waiting to review a spreadsheet later.
Save Normal Risk Record
This Google Sheets node stores non-high-risk records.
riskCategoryredFlagsincomegeographyoccupationThis gives you a separate audit trail for lower-risk applicants.
Before activating the workflow, run a few test submissions through the form.
Example:
5000IndiaSoftware EngineerExpected result:
Example:
3000Some higher-risk regionFreelancerExpected result:
Example:
15000High-risk jurisdictionCrypto TraderExpected result:
Example:
0Expected result:
Once these tests work correctly, the workflow is ready to activate.
This workflow is flexible and can be extended depending on your onboarding or compliance process.
KYC Form Submission
You can expand the form to include fields such as:
If you add fields, remember to update:
Validate KYC Input
Right now, validation results are created but not used to stop the workflow.
You can improve this by adding an IF node after validation to block records where:
isValid == false
This would let you:
Ai Assign The Risk Category
You can tailor the AI prompt to match your internal compliance rules.
This is one of the most important places to adapt the workflow to your business.
Process AI ResponseFormat Final DataYou can extend the structured AI output to include more details such as:
This is useful if you want more than just a category label.
Send High Risk Alert
You can customize the Slack message to include:
This helps operational teams respond faster.
Save High Risk RecordSave Normal Risk RecordInstead of storing high-risk and normal-risk cases separately, you can route both into one master Google Sheet and add a field such as:
riskCategory
This is useful if you prefer centralized reporting.
This workflow can be extended into a more advanced KYC onboarding automation system.
Send an email alert in addition to Slack when a high-risk record is detected.
Assign high-risk cases to a specific compliance reviewer.
Create a review status field such as:
Track the volume of:
Push the final KYC decision into your CRM, database or onboarding system.
Add a dedicated compliance screening step before or after AI analysis.
This workflow can support many different customer onboarding and risk intake scenarios. Below are some of the main ones.
Use the form to collect customer information and automatically classify onboarding risk before manual review.
Route higher-risk financial users into a flagged review process while logging normal applicants automatically.
Screen leads, vendors or applicants before moving them deeper into your onboarding pipeline.
Help compliance teams reduce repetitive manual work by automatically identifying obviously high-risk submissions.
Automatically create a structured list of high-risk cases that require follow-up or escalation.
Use AI as an early-stage risk assistant before implementing a more advanced compliance stack.
There can be many more use cases depending on your industry, customer type, onboarding rules and compliance process.
| Issue | Possible Cause | Solution |
|---|---|---|
| Form submits but no data is processed | Workflow is inactive or form trigger is not published | Activate the workflow and confirm the form is live |
| AI output fails to parse | OpenAI returned text outside the expected JSON structure | Review the AI prompt and confirm the model is returning valid JSON |
| High-risk records are not reaching Slack | Slack node is not configured or connected correctly | Reconnect Slack credentials and verify the selected channel |
| High-risk records are not being saved | Google Sheets high-risk node is not configured | Set the spreadsheet and sheet tab in Save High Risk Record |
| Low / medium records are not being saved | Google Sheets normal-risk node is incomplete | Configure Save Normal Risk Record with the correct destination sheet |
Risk category is always Unknown |
AI output could not be parsed properly | Inspect the Process AI Response node and test the AI response format |
| Invalid form data still moves forward | Validation node does not block the workflow | Add an IF node after Validate KYC Input if you want strict validation |
| Geography looks different than expected | Validation node converts geography to uppercase | This is expected behavior in the current workflow |
| Occupation is missing in the high-risk sheet | Format the Data For Sheet does not include occupation |
Add occupation to that Set node if needed |
| Slack alert shows incomplete values | Some fields were not preserved in the high-risk path | Check the data passed into the Slack node and update the mapping if necessary |
If you want help setting up, customizing or extending this workflow, our n8n workflow automation developers at WeblineIndia / Global can help you implement it faster and more reliably.
We can help you with:
If you want a customized version of this workflow or need similar automation for onboarding, compliance or risk operations, contact WeblineIndia for workflow setup and development support.