Intentflow
The detailed reference for how Verify actually behaves - the correlation layer that turns raw signals into real findings, exactly what's checked across all four categories, what confidence and severity mean, run statuses, and billing.
Three steps - no agents, no access to your live network, nothing installed.
A .zip, a .tar.gz, or a single file of running-configs from Cisco IOS/IOS-XE, Cisco NX-OS, Juniper Junos, or Arista EOS. Already using Intentflow Reconcile? Reuse an existing import instead - see Using an existing Reconcile import. Include a show lldp neighbors detail (or CDP) capture for each device whose physical links you want assessed - the physical-topology checks below cover exactly the devices you supply one for, and the report states which devices those were. No separate step required. If you're a hosted NetBox customer, your own Cable records are used automatically, no upload needed at all.
Every uploaded config is analyzed together as one connected network - the same way traffic actually moves through it - not one device at a time in isolation. Nothing is deployed, changed, or even reachable from the outside; the analysis runs entirely on the configuration you upload. The modeling and simulation itself runs on Batfish, the open-source network configuration analysis engine - a real, independently-verifiable model of your network's behavior, not a black box. What Intentflow adds on top is the correlation layer, the plain-English findings, and the workflow around it - see The correlation layer below.
Every finding explained in plain English - what happened, why, what it affects, and what to do about it - with passes shown alongside failures. The dashboard organises a run into four views: Overview (the state of the run - coverage, verdict, and the network model discovered from your configuration), Findings (everything the checks produced, searchable and filterable), Network Behavior (the reachability matrix, which devices Intentflow considers structurally comparable, any device behaving unlike its peers, and what changed since your previous run) and Resilience (what stops being reachable when a single device fails) — both marked Beta in the app, meaning they run on every verification but their shape is still changing. Findings tell you what deserves attention; the other views let you investigate why, and a finding links across to the analysis it came from rather than repeating it. The same content, plus the observed scope of each finding, downloads as PDF, text, or JSON (view a sample report).
The same parser Reconcile uses - filename or content is enough to identify a config, no manifest required.
| Platform | What Verify reads |
|---|---|
| Cisco IOS / IOS-XE | show running-config |
| Cisco NX-OS | show running-config |
| Arista EOS | show running-config |
| Juniper Junos | show configuration |
Verify's real job isn't answering a checklist of independent yes/no questions in isolation. It works at two levels: several underlying analyses are composed into a single finding, and findings that concern the same place in the network, or share an evidenced circumstance, are related to each other.
A network model can answer a lot of narrow questions in isolation: is this BGP session's configuration internally consistent? Does this access-list line ever match anything? Does a route exist toward this address? Any one of those answers, taken alone, can be technically correct and still misleading - "the configuration looks fine" is not the same question as "does this actually work." Verify's correlation layer exists to close that gap: it cross-references multiple independent signals about the same session, link, or path before deciding whether something is actually broken, and reports one finding with the real cause - not a pile of loosely related observations for you to connect yourself.
Two routers have a BGP session. Their configuration matches on both sides - same AS numbers, same IP addresses - and by every configuration-level signal, the session reports as established. That's usually where a simpler tool would stop. Verify goes one step further: it traces a connection between the two peers' addresses through the forwarding model to see whether it gets through. If an access list somewhere along that path silently blocks it, Verify reports exactly that - a session that looks healthy by every configuration signal, but doesn't actually work, with the specific reason why - instead of either missing it entirely or reporting two disconnected facts ("session established" and, separately, "traffic blocked here") and leaving you to notice they're the same problem.
Above the findings, Verify relates them to each other. Findings landing on the same device or device pair are grouped as one place to investigate; separately, findings that share an evidenced circumstance - configurations that did not fully parse, forwarding failures aimed at segments independently found to be isolated - are gathered under that circumstance, with the evidence for it stated. Nothing is removed, merged, re-rated or hidden. If a run has 230 findings, it still reports 230 findings and every one stays individually visible: correlation reorganises them for investigation, it does not summarise them away. Each grouping carries the specific reason each finding belongs to it, so "why were these put together?" has an answer you can check rather than a claim you have to trust. What this layer deliberately does not do is assert that one finding caused another - that requires re-running the analysis with a specific element removed, which is a different kind of proof.
To say a device behaves unlike its peers, Verify first has to decide which devices are peers. It groups them by structure, not by name: which VRFs a device has, whether it runs BGP or OSPF, and how many loopback, transit and LAN interfaces it carries. Hostname conventions vary from network to network, so a group built on a naming guess would be exactly the grouping you cannot check. Verify describes each group by that signature and never gives it a business name. It will tell you these eleven devices share a shape; it will not call them "the branch sites," because that is a claim about their role that no configuration states. The signature is shown so you can reject the grouping - which you could not do against a label that had already interpreted it for you. A device with no structural peer gets its own group of one rather than being hidden: that is precisely the device no comparison can ever be made about, and saying so is more useful than its silent absence.
Where a group is large enough to compare, Verify reports a device that behaves unlike the rest of it. The population rules are deliberately conservative: below five comparable devices it says nothing at all, below eight it reports an observation rather than a candidate pattern, and the majority behaviour must be at least 80% consistent before any difference is worth reporting - two-of-three is noise, and treating it as signal would manufacture exactly the false positives the rest of the catalog is built to avoid. A relationship Verify could not determine is excluded from both sides of the comparison, because "we could not tell" is not evidence of consistency or of difference. And the result is always reported as a difference. Verify will not call it a violation, because nothing in your configuration says which behaviour was intended - one deliberately hardened branch looks identical to one misconfigured branch, and only you can tell those apart.
Some findings share a circumstance rather than a location - forwarding failures aimed at segments independently found to be isolated, or results limited by configurations that did not fully parse. Verify gathers those under the circumstance and states the evidence for it, so the grouping is checkable. A condition never fires on symptoms alone: without the independent evidence, there is no condition, however suggestive the pattern looks. The wording is deliberate too - a condition says findings are consistent with a circumstance, never that the circumstance caused them. Proving cause means re-running the analysis with that element removed, which is a different kind of proof and one Verify does not claim to have made.
Some findings are the direct, deterministic result of comparing two configured values - an AS number that plainly doesn't match. Others require reasoning across multiple signals where a legitimate, intentional design could look the same as a mistake - two ends of a link deliberately placed in different VRFs for a real routing-boundary reason, for instance. Verify labels every finding's confidence accordingly (see Confidence, severity & verdict) so you can tell "this is definitely wrong" apart from "this is worth a second look" at a glance, rather than treating every finding as equally certain.
Four categories, composed from your network's own configuration and modeled behavior - never a guess about intent that isn't in the configs themselves.
How much of what you uploaded could actually be analyzed, before any behavioral check runs on top of it.
BGP and OSPF, checked for whether sessions can actually form and stay up - not just whether their configuration looks consistent.
Access lists, cross-device consistency, and configuration hygiene.
Whether traffic your own network's routing tables say should work, actually does.
Every finding carries both a confidence level and a severity - two different questions, both answered explicitly rather than left for you to infer.
| Confidence | Meaning |
|---|---|
| High | A direct, deterministic fact - two configured values that plainly don't match, a real path trace that plainly fails. |
| Medium | A reasonable, but not certain, read of the evidence - the most likely explanation given what's available, not the only possible one. |
| Inferred | A pattern that's worth a second look, not a confirmed problem - a legitimate, intentional design could produce the same signal. |
| Severity | Meaning |
|---|---|
| Critical | A real, current problem - not a transient state. At least one critical finding means the overall run is FAIL. |
| Warning | Worth attention, but not an outright failure on its own. Any warning with zero criticals means the overall run is PASS WITH ISSUES. |
| Info | Worth knowing, not necessarily worth acting on - an external peer that couldn't be verified, harmless unused configuration. Never affects the overall verdict. |
The report's summary block always shows passes alongside failures per category - "12 BGP sessions verified" is as much a real result as any finding, not just a to-do list of what's broken.
Every run moves through these states, visible live on its own page.
Analyzing configurationYour uploaded configs are being identified and classified by platform.
Building network modelYour configs are being combined into one connected model of the network.
Running checksSnapshot, Routing, Policy, and Forwarding run in sequence against that model - the page shows which one is currently in progress.
CompletedFinished with a clean PASS - no critical or warning findings.
Completed with issuesFinished, but the report contains at least one warning or critical finding - open it to see what.
FailedThe run itself couldn't complete - shown with the specific reason (e.g. no analyzable device configurations in what was uploaded). Rerunning after fixing the underlying issue doesn't require a fresh upload.
Already uploaded configs to Reconcile? You don't always need to upload them again.
Reconcile and Verify need different things from the same kind of upload. Reconcile only needs whatever command output lets it populate specific NetBox fields - a device inventory and an LLDP capture is a complete, useful Reconcile batch on its own. Verify needs a full running-config per device to model routing, policy, and forwarding behavior - a batch that's 100% complete by Reconcile's own standard can still have zero full device configs in it, if that's all it was ever fed.
Verify looks at exactly which devices in that batch have a full config captured, and runs against those - honestly. If a batch has no usable device configs at all, the run fails immediately with a clear message rather than wasting time on nothing to analyze. If it's partial, the run proceeds on what's available and the report says so plainly, rather than silently pretending every device was covered.
Three ways to pay - see the pricing page for current rates.
A single run, no account required - pay, and a link to upload your configs and see the report is emailed to you. If that email address already has an Intentflow account, you'll be pointed to add Verify to it instead of creating a separate one - keeping everything under one login. Your report page stays available to view and download for 7 days after the run completes, then it's permanently deleted. The configuration you uploaded is also permanently deleted after 7 days, and is never sent outside our own infrastructure or to any AI model; see Security for the full lifecycle.
A recurring Verify-only account, with no hosted NetBox instance required at all.
Already on hosted NetBox? Add Verify to your existing Business or Enterprise account, or to an individual client's account if you're an MSP - billed on the same subscription, using the payment method already on file. Standalone Reconcile can add it too, at $200/month rather than $149, which puts both products at $349. Cancel any time from your dashboard; it stops renewing straight away, stays active for the rest of the period you have already paid for, and the rest of your plan is untouched. Because that period is already paid for, re-adding Verify before it ends costs nothing and changes nothing.
Yes - every plan that includes Verify covers 10 verification runs a month, on the standalone subscription and the hosted add-on alike. The allowance resets monthly from the day Verify was activated on your account, not from your billing date, so an annual subscription gets the same 10 runs each month. A run that fails on our side - a timeout, or an upload we could not analyse - is not counted. If you need more, get in touch.
What a subscription covers is one network: your own, or a single client's. Assessing several different clients' networks needs an MSP account, or a separate subscription for each, whether or not you charge for the results (Terms, section 3).
Said plainly, not buried in a footnote.
Reach out at support@intentflow.co