Periodic KYC review automation without chasing review dates
On the schedule you set, the agent lists the periodic KYC reviews that are due by risk rating and refreshes each file. It re-screens the customer, compares the file with the last review and asks a person about anything that changed.
Works with


- Custom REST
and any system with an API via Custom REST
What is a periodic KYC review?
The procedure
A periodic KYC review, often called a KYC refresh, brings a customer file up to date on the cycle your policy sets for each risk rating. The reviewer refreshes the documents, re-screens the customer and compares the file with the last review. Keeping track of what is due, and spotting what changed, takes most of the effort.
What the agent does
Lists the files due for review under your cycle for each risk rating
Refreshes the profile and documents from Sumsub
Re-screens the customer and owners in ComplyAdvantage
Compares the file with the last review and saves both versions side by side
What your team decides
Whether a change in ownership or profile is acceptable
Sending a customer back through KYB or onboarding review
Overdue high-risk files with new hits, with your MLRO or compliance officer
Any change to the customer's risk rating
Example runs for compliance operations, relationship teams, MLROs or compliance officers
Periodic Review Agent
Runs each periodic review on your review cycle.


- +1
Trigger: Daily at 06:00
From a procedure Periodic review · v1.4
Lena
Run today's periodic reviews. First up: Harbor Lane.
Periodic Review Agent
- Listed the files due for review under your cycle for their risk rating
Refreshed the customer profile and documents from Sumsub
Re-screened the customer and owners in ComplyAdvantage: no hits- Compared the file with the last review: nothing changed
changes.size() == 0
Review complete. No changes since the last review. The next review date was set by your cycle for this risk rating.
4 steps · 0 reviews
Periodic Review Agent
Runs each periodic review on your review cycle.

- +1
Trigger: Daily at 06:00
From a procedure Periodic review · v1.4
Tom
Run the periodic review for Corvid Freight.
Periodic Review Agent
Refreshed the customer profile and documents from Sumsub- The ownership declaration differs from the file at the last review
changes.exists(c, c.field == "owners") Saved both versions of the ownership declaration side by side
- Paused for a reviewer on the ownership change Waiting for a reviewerMaya: new owner added, KYB review to be re-run
Referred. Maya found a new owner and sent the customer back through the KYB review, with the comparison attached.
4 steps · 1 review
Periodic Review Agent
Runs each periodic review on your review cycle.


- +1
Trigger: Daily at 06:00
From a procedure Periodic review · v1.4
Marcus
Which high-risk reviews are overdue? Start with Ostrava Metals.
Periodic Review Agent
- Found a high-risk review past its due date under your cycle
Re-screened the customer in ComplyAdvantage: 1 new adverse media hit- Routed the file to a reviewer: high risk with a new hit Waiting for a reviewerPriya: escalate to your MLRO or compliance officer
- Recorded the escalation and flagged the file as overdue
Escalated. The overdue high-risk review went to your compliance officer with the new hit and the refreshed file attached.
4 steps · 1 review
Setting up the Periodic Review Agent
Connect your systems
Refresh profiles from Sumsub, re-screen in ComplyAdvantage, store review packs in Google Drive, and read your customer or case system through Custom REST.


- Custom REST
Write the rules
The review cycle for each risk rating, and what counts as a change, are written in CEL.
customer.review_due == trueStart reviewchanges.exists(c, c.field == "owners")Ask a reviewerrisk_rating == "High" && screening.new_hits > 0EscalateAdd reviewers where the procedure says
Anything that changed since the last review is shown to a person with both versions of the file in front of them.
Review requested: Corvid Freight
- Reason
- Ownership declaration changed
- Rule
- changes include owners
- Procedure
- Periodic review · v1.4
Re-run KYBAccept change
Start it from the event
A daily schedule starts the reviews that are due. Webhooks start one between cycles when Sumsub reviews an applicant again or your customer system reports a profile change.
- Daily at 06:00 · reviews due
- Sumsub · applicantReviewed
- Inbound webhook · customer profile changed
Version and evaluate
Test the cycle itself: a file due today, a file not yet due and an overdue high-risk file. Each new version of the periodic review has to pass them before it is published.
Periodic review · v1.4Published
12/12 scenarios passed
Periodic review · v1.2 Superseded
Periodic review · v1.1 Superseded
Share with the team
Compliance operations take the Reviewer role for changes the agent finds, an Author maintains the review cycle, and auditors check each review against the version it followed.
Admin
Author
Reviewer
Auditor
Questions about periodic KYC review automation
How does the agent know which reviews are due?
Your review cycle is written in CEL for each risk rating. A daily schedule runs the check and starts a review for each file that is due.
Does it support event-driven or perpetual KYC?
It covers both patterns. A schedule handles reviews by due date, and webhooks start a review when Sumsub or your customer system reports a change.
What happens when nothing changed?
The agent records a no-change review, and the next review date follows your cycle for that risk rating. No reviewer is needed unless your procedure asks for one.
Can it flag overdue files?
Yes. In the third example, a high-risk review past its due date is flagged as overdue and, because of a new hit, escalated.
Controls your auditors will ask about
These controls apply to each agent you build. Sample data
Admin
Author
Reviewer
Auditor
Role-based access
Admin, Author, Reviewer and Auditor roles, scoped to each workspace.
- 41
7c2e… - 42
a91f… ← 7c2e - 43
03d8… ← a91f
Hash-chained audit log
Each entry carries the hash of the one before it. Verifying the log recomputes the chain and flags entries that no longer match.
- 41
- v1.1v1.2v1.3Published
Versioned specs
Each run records the exact version it followed; old versions stay readable.
- vault/sumsub/key
Secrets in a vault
Steps point to a vault path, and the key stays in the vault.
- Signed delivery accepted
- Unsigned delivery rejected
Signed webhook triggers
Unsigned or stale deliveries are rejected before a run starts.
- SandboxLive
Sandbox before live
New versions run on test data first. Going live is a separate step.
Related use cases
-


KYC onboarding reviewCheck documents, screen the applicant and apply your risk rules, with a reviewer where the procedure asks.
-


KYB and beneficial ownershipMap owners and controllers above your threshold, screen each one and flag gaps for a reviewer.
-
Sanctions screeningScreen counterparties before the first payment and send each possible match to a person.
Run this procedure as an agent
Book a demo with your own version of this procedure, and we'll show it running with each step logged.
Book a demo