I am trying to enforce customized data validation and required attributes in a NERM Bulk Import workflow, but have not been able to achieve my desired functionality thus far.
Example Desired Use Case:
Three Profiles are being uploaded in bulk. Two of them are totally correct and should be accepted by the system and created as normal. One is missing a required attribute, and should not be created.
What I’ve Tried So Far:
No specific workflow step, but mapping the blank attributes to attributes defined as Required elsewhere in NERM.
Setting a conditional workflow step to check if any required attribute is Absent, and if so, close the workflow.
Setting a conditional workflow step to check if any required attribute is Absent, and if so, call another workflow that will fail.
In the case of #1, NERM creates a Profile with missing attributes, which does not satisfy my requirement.
In the case of #2 and #3, NERM marks the import as totally successful, but creates none of the Profiles from the import, even those that were properly formed. No indication of any failure is given in the UI.
I’ve been able to find no other suitable ways to do this.
Is there ways to customize the Bulk Import flow to specify exact failure and success conditions and reflect that in the UI? Has anyone accommodated similar use cases?
It is my understanding that if you do have the bulk upload functionality turned on, and the record/row is missing a required attribute it should enforce that validation and mark the row as problematic.
Can you provide a screenshot of the workflow steps?
NERM Bulk Import workflows do not provide record-level success/failure handling out of the box. If a workflow condition causes the workflow to fail or terminate, it typically impacts the entire import transaction rather than selectively rejecting individual records.
For your use case, the recommended approach is to:
Validate required attributes before the import file is submitted to NERM.
Use a pre-processing step (external script, API, or integration layer) to split valid and invalid records.
Import only valid records into NERM.
Generate a separate error report for rejected records.
Within NERM workflows, you can add validation logic and notifications, but there is currently no native mechanism to:
Reject only specific rows while creating the remaining profiles.
Display custom per-record validation failures in the Bulk Import UI.
Define granular success/failure conditions for individual records within a single bulk import transaction.
If row-level validation and reporting are strict requirements, an external validation process before NERM Bulk Import is generally the most reliable approach.
NERM Bulk Import workflows do not provide record-level success/failure handling out of the box. If a workflow condition causes the workflow to fail or terminate, it typically impacts the entire import transaction rather than selectively rejecting individual records.
This is incorrect. Where did you get this information? If it’s from the product docs, I will ensure it gets updated accordingly
When a Bulk Import is processed, each row in the CSV generates its own Workflow Session. So, each record is handled separately.
Within NERM workflows, you can add validation logic and notifications, but there is currently no native mechanism to:
Reject only specific rows while creating the remaining profiles.
Display custom per-record validation failures in the Bulk Import UI.
Define granular success/failure conditions for individual records within a single bulk import transaction.
This is also very incorrect… The production should generate a CSV errors report on partial or full failures (one, some, or all rows fail to import) that shows which rows had errors and what the errors. There is a current bug with this where if there is an error with a Profile or Contributor select, the error may be blank for that row.
Our intention is to provide granular details for errors, so you know what to fix.
@coltonulmer Is correct. We should be validating on Required attributes during and import. There might be a bug with that - I will attempt to replicate and follow up
Well - quick internal search, this is a bug I reported back in March of 2025 . There is a fix for it that is behind a feature flag which is to display a toggle to choose whether or not to Ignore blank values in the CSV..
At this moment, not sure if we did not GA that change for a reason or if there is a separate bug around it.. So, working to validate that.
Hi Zachary - thanks so much for the replies. Please keep me posted with what you find regarding the toggle you mentioned; sounds like that would be what I’m looking for to solve my use case. Thanks!
That feature flag should be GA’d now. You may need to log out and then back in to see the toggle, or clear your browser cache. (And apologies this was not enabled by default! We have had some changes in our feature flag roll outs a while ago, so they should be more consistently GA’d after initial group testing. This one was from our older methodology and seemed to have gotten lost.. )
In the example below, If I have the “Ignore blank values” toggle ON - it will import both of my rows and create a profile without a First Name attribute (which is a required attribute). With the toggle OFF, it will result in a partial failure with the error “first_name cant be blank” .
I do want to note as well: The Workflow system does also validate if we are trying to store an empty Required attribute on a profile or within the session. The reason this was not triggering the workflow’s validation was because the attribute was not present in the session at all.
The workflow system does not know which attributes a profile should have - it only know what attributes are present within a given session. So, it does not know that “People” profiles need to have a first name value. If one is simply not present with the session at all, it can not trigger the validation. If the attribute is present but has an empty value (such that is was not completed on a Form, or was removed via a Set Attribute Values action) - the validation is tripped.
So, if the toggle is ON (the default behavior up until 15 minutes ago) - it just creates the session with all attributes that have a value in the CSV, and simply does not include the others.
@ZackTarantino-Woolson - thank you so much for the quick solution! I just tested it and it is working as expected. Marking this thread as solved. Thanks again!