<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: iCustoms</title>
    <description>The latest articles on DEV Community by iCustoms (@icustoms12).</description>
    <link>https://dev.to/icustoms12</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1232603%2Fa7bc2714-3239-411e-b1f6-450d1c8bfa3d.jpg</url>
      <title>DEV Community: iCustoms</title>
      <link>https://dev.to/icustoms12</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/icustoms12"/>
    <language>en</language>
    <item>
      <title>The NCTS and CDS Workflow That Survives Pre-Lodgement</title>
      <dc:creator>iCustoms</dc:creator>
      <pubDate>Mon, 21 Sep 2026 07:26:19 +0000</pubDate>
      <link>https://dev.to/icustoms12/the-ncts-and-cds-workflow-that-survives-pre-lodgement-331i</link>
      <guid>https://dev.to/icustoms12/the-ncts-and-cds-workflow-that-survives-pre-lodgement-331i</guid>
      <description>&lt;p&gt;Pre-lodgement RoRo journeys are unforgiving. The Goods Movement Reference will refuse the pairing if either declaration is missing. Sequencing matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step one: classify the movement
&lt;/h2&gt;

&lt;p&gt;Direct clearance or transit? The answer picks the primary system. The &lt;a href="https://www.icustoms.ai/blogs/ncts-vs-cds-difference/" rel="noopener noreferrer"&gt;UK NCTS vs CDS guide&lt;/a&gt; has the decision framing in one image.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step two: file the transit declaration first
&lt;/h2&gt;

&lt;p&gt;For transit journeys, NCTS goes in early so the movement reference is live.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step three: file the CDS entry
&lt;/h2&gt;

&lt;p&gt;Direct clearance leg or destination clearance gets its own CDS entry.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step four: bind them under the GMR
&lt;/h2&gt;

&lt;p&gt;The Goods Movement Reference is where both records meet. Both must be valid at the moment of creation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step five: monitor discharge and clearance separately
&lt;/h2&gt;

&lt;p&gt;Discharge closes NCTS. Clearance closes CDS. Two events, two evidence trails.&lt;/p&gt;

&lt;p&gt;Ready to run this without duplicating data entry? &lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ncts</category>
      <category>cds</category>
      <category>workflow</category>
      <category>prelodgement</category>
    </item>
    <item>
      <title>Building an NCTS Transit Declaration: The Workflow</title>
      <dc:creator>iCustoms</dc:creator>
      <pubDate>Fri, 18 Sep 2026 07:19:30 +0000</pubDate>
      <link>https://dev.to/icustoms12/building-an-ncts-transit-declaration-the-workflow-2ke6</link>
      <guid>https://dev.to/icustoms12/building-an-ncts-transit-declaration-the-workflow-2ke6</guid>
      <description>&lt;h2&gt;
  
  
  How should the workflow run?
&lt;/h2&gt;

&lt;p&gt;The workflow runs in stages that mirror the NCTS5 data model. Skipping stages introduces validation errors. Repeating the same stage order across all filers produces consistent, low-rejection output.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stage 1: Access and readiness
&lt;/h2&gt;

&lt;p&gt;Confirm Government Gateway credentials, EORI, user permissions, and software version. Validate that the software uses the NCTS5 data model.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stage 2: Consignment mapping
&lt;/h2&gt;

&lt;p&gt;Map the load into consignment, house consignment and goods item layers. Every commercial invoice becomes a house consignment. This &lt;a href="https://www.icustoms.ai/blogs/how-to-create-ncts-transit-declaration/" rel="noopener noreferrer"&gt;NCTS Phase 5 filing guide&lt;/a&gt; walks through the mapping in operational terms.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stage 3: Commodity coding
&lt;/h2&gt;

&lt;p&gt;Populate a six-digit HS code for every goods item. Descriptions never substitute for codes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stage 4: Route and offices
&lt;/h2&gt;

&lt;p&gt;Confirm office of departure, offices of transit where applicable, and office of destination. Check that the route falls within the guarantee's binding conditions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stage 5: Guarantee and IE015
&lt;/h2&gt;

&lt;p&gt;Attach the guarantee reference and access code. Submit IE015 to the office of departure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stage 6: TAD and release
&lt;/h2&gt;

&lt;p&gt;Once validated, the office issues the MRN and generates the TAD. The document travels physically with the goods and is presented at each transit office.&lt;/p&gt;

&lt;p&gt;Want to see the entire workflow inside one platform? &lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ncts</category>
      <category>workflow</category>
      <category>automation</category>
      <category>ai</category>
    </item>
    <item>
      <title>Building a Clean EU Transit Workflow End to End</title>
      <dc:creator>iCustoms</dc:creator>
      <pubDate>Thu, 17 Sep 2026 07:25:51 +0000</pubDate>
      <link>https://dev.to/icustoms12/building-a-clean-eu-transit-workflow-end-to-end-1ldd</link>
      <guid>https://dev.to/icustoms12/building-a-clean-eu-transit-workflow-end-to-end-1ldd</guid>
      <description>&lt;p&gt;Think of an EU transit movement as a small state machine. Every state has entry conditions and exit conditions. Miss an exit condition and the movement stalls with a guarantee locked behind it.&lt;/p&gt;

&lt;h3&gt;
  
  
  The four states that matter
&lt;/h3&gt;

&lt;p&gt;Declared, Released, In transit, Discharged.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://www.icustoms.ai/blogs/eu-customs-transit-procedure/" rel="noopener noreferrer"&gt;transit discharge process&lt;/a&gt; walks through what each transition needs and why the last one is the one most operators underestimate.&lt;/p&gt;

&lt;h3&gt;
  
  
  State: Declared
&lt;/h3&gt;

&lt;p&gt;Data is validated locally, guarantee cover confirmed, declaration lodged at the office of departure.&lt;/p&gt;

&lt;h3&gt;
  
  
  State: Released
&lt;/h3&gt;

&lt;p&gt;MRN issued, TAD printed, driver dispatched. Do not overwrite the record. From here it becomes the reconciliation anchor.&lt;/p&gt;

&lt;h3&gt;
  
  
  State: In transit
&lt;/h3&gt;

&lt;p&gt;Border-crossing notifications are received at each office of transit. Alert on any missing notification within a defined window.&lt;/p&gt;

&lt;h3&gt;
  
  
  State: Discharged
&lt;/h3&gt;

&lt;p&gt;Arrival notification, unloading remarks and discharge message. Only at this point can the guarantee be marked released internally.&lt;/p&gt;

&lt;h3&gt;
  
  
  Instrumentation
&lt;/h3&gt;

&lt;p&gt;Every transition is a metric. Time to release, time to first transit notification, time to discharge, age of open MRNs. Miss the last two and you are flying blind.&lt;/p&gt;

&lt;p&gt;Run declarations, guarantee tracking and discharge in one system. &lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>eutransit</category>
      <category>tooling</category>
      <category>movement</category>
      <category>ai</category>
    </item>
    <item>
      <title>Building a Pre-Boarding Workflow for GB to EU Trailers</title>
      <dc:creator>iCustoms</dc:creator>
      <pubDate>Wed, 16 Sep 2026 07:49:39 +0000</pubDate>
      <link>https://dev.to/icustoms12/building-a-pre-boarding-workflow-for-gb-to-eu-trailers-1e0</link>
      <guid>https://dev.to/icustoms12/building-a-pre-boarding-workflow-for-gb-to-eu-trailers-1e0</guid>
      <description>&lt;h2&gt;
  
  
  The workflow in four gates
&lt;/h2&gt;

&lt;p&gt;A trailer becomes ready to board only when four gates pass in order: export declaration lodged, transit MRN issued, import declaration pre-lodged, and safety and security reference attached. Anything less is an incomplete GMR.&lt;/p&gt;

&lt;h3&gt;
  
  
  Gate-by-gate logic
&lt;/h3&gt;

&lt;p&gt;Gate one closes when CDS accepts the export declaration and returns a valid MRN. Gate two closes when NCTS Phase 5 issues the transit MRN and the departure office releases the movement. Gate three closes when the EU-side import declaration is pre-lodged. Gate four closes when the safety and security data — embedded or separate — carries a valid reference. Full sequencing is documented in this &lt;a href="https://www.icustoms.ai/blogs/uk-post-brexit-transit-customs/" rel="noopener noreferrer"&gt;2026 UK transit customs handbook&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Where the workflow breaks
&lt;/h3&gt;

&lt;p&gt;Most rejections come from parallel steps started too early. Filing a GMR before the transit MRN exists produces a stub reference that fails at the port. The fix is a strict gate order and a single owner per GMR.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Should the driver ever hold a paper backup?&lt;/strong&gt;&lt;br&gt;
The MRN barcode on the TAD is the operational document; a driver-side copy is common practice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can gates run in parallel?&lt;/strong&gt;&lt;br&gt;
Some can, but the GMR should not be committed until every gate has closed.&lt;/p&gt;

&lt;p&gt;See the whole workflow in one screen. &lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt; with iCustoms.&lt;/p&gt;

</description>
      <category>gbtoeu</category>
      <category>trailers</category>
      <category>tooling</category>
      <category>preboarding</category>
    </item>
    <item>
      <title>Designing an NCTS Phase 5 Declaration Workflow That Does Not Break at the Border</title>
      <dc:creator>iCustoms</dc:creator>
      <pubDate>Tue, 15 Sep 2026 07:50:05 +0000</pubDate>
      <link>https://dev.to/icustoms12/designing-an-ncts-phase-5-declaration-workflow-that-does-not-break-at-the-border-57md</link>
      <guid>https://dev.to/icustoms12/designing-an-ncts-phase-5-declaration-workflow-that-does-not-break-at-the-border-57md</guid>
      <description>&lt;h2&gt;
  
  
  Workflow shape
&lt;/h2&gt;

&lt;p&gt;Phase 5's rejection pattern is upstream by design. A workflow that validates house consignment structure, commodity codes, GRN state and party EORIs before IE015 leaves your system is cheaper than one that reacts to IE056 after submission.&lt;/p&gt;

&lt;h2&gt;
  
  
  Checkpoints
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Manifest ingestion → build consignment and house consignment tree.&lt;/li&gt;
&lt;li&gt;Line normalisation → force six-digit HS codes.&lt;/li&gt;
&lt;li&gt;Guarantee check → confirm GRN, access code, EORI and available balance.&lt;/li&gt;
&lt;li&gt;Party validation → verify EORI shape and status.&lt;/li&gt;
&lt;li&gt;Optional safety and security → only when the full dataset is present.
The end-to-end sequence is captured in the iCustoms &lt;a href="https://www.icustoms.ai/blogs/ncts-phase-5-guide/" rel="noopener noreferrer"&gt;NCTS Phase 5 declaration process guide&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Retries and dead letters
&lt;/h2&gt;

&lt;p&gt;Route IE055 and IE056 into a queue with the field pointer parsed. IE051 is a policy decision by the office of departure, not a retry candidate — surface it to a human.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ship it
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt; to see how the workflow behaves under real traffic.&lt;/p&gt;

</description>
      <category>ncts</category>
      <category>declaration</category>
      <category>tooling</category>
      <category>ai</category>
    </item>
    <item>
      <title>The Modern TSS Declaration Workflow With AI in the Loop</title>
      <dc:creator>iCustoms</dc:creator>
      <pubDate>Mon, 14 Sep 2026 07:37:47 +0000</pubDate>
      <link>https://dev.to/icustoms12/the-modern-tss-declaration-workflow-with-ai-in-the-loop-pdc</link>
      <guid>https://dev.to/icustoms12/the-modern-tss-declaration-workflow-with-ai-in-the-loop-pdc</guid>
      <description>&lt;h2&gt;
  
  
  The old flow
&lt;/h2&gt;

&lt;p&gt;A broker receives PDFs. They re-key fields into TSS. They pick a commodity code. They validate mentally. They submit. Errors surface as rejections and get chased manually.&lt;/p&gt;

&lt;h2&gt;
  
  
  The AI-in-the-loop flow
&lt;/h2&gt;

&lt;p&gt;Documents land in the workflow queue. Extraction reads invoices, packing lists, and transport documents. The validation engine checks format, consistency, and TSS constraints. Classification proposes a code with alternatives. The reuse layer flags known lines. The broker reviews, corrects low-confidence fields, and submits.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why "in the loop" matters
&lt;/h2&gt;

&lt;p&gt;A person still owns risk decisions, procedure choice, and communication. This is the reallocation model at the centre of the &lt;a href="https://www.icustoms.ai/blogs/tss-customs-automation-ai/" rel="noopener noreferrer"&gt;what AI can and cannot do in TSS piece&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Handling low confidence
&lt;/h2&gt;

&lt;p&gt;Route below-threshold fields to a review queue. Do not silently accept. Every override enters the audit trail with reason and reviewer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Handling peaks
&lt;/h2&gt;

&lt;p&gt;Supplementary declaration deadlines create surge weeks. Design the queue for horizontal parallelism and pre-warm the review team. This is where AI pays back its licence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Handling first-time products
&lt;/h2&gt;

&lt;p&gt;Skip auto-reuse. Send to a specialist. Create a fresh product record with attributes for future recognition.&lt;/p&gt;

&lt;h2&gt;
  
  
  What success looks like
&lt;/h2&gt;

&lt;p&gt;Fewer rejections. Faster median declaration time. Stable staff numbers absorbing higher volumes. A clean audit trail on every submission.&lt;/p&gt;

&lt;p&gt;Design your own workflow with us. &lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>tss</category>
      <category>declaration</category>
      <category>workflow</category>
      <category>ai</category>
    </item>
    <item>
      <title>Building a Multi-Client TSS Declaration Workflow</title>
      <dc:creator>iCustoms</dc:creator>
      <pubDate>Fri, 11 Sep 2026 06:51:45 +0000</pubDate>
      <link>https://dev.to/icustoms12/building-a-multi-client-tss-declaration-workflow-3jni</link>
      <guid>https://dev.to/icustoms12/building-a-multi-client-tss-declaration-workflow-3jni</guid>
      <description>&lt;h2&gt;
  
  
  The workflow shape that scales
&lt;/h2&gt;

&lt;p&gt;A declaration workflow that scales across clients looks less like a form and more like a pipeline: ingest → validate → enrich from client product master → assemble → submit → route response.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ingest with source discipline
&lt;/h2&gt;

&lt;p&gt;Client invoices arrive in varying formats. The ingest layer normalises them against the client's written data specification. This upstream discipline is the difference between a review workflow and a re-key workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enrich per client, not globally
&lt;/h2&gt;

&lt;p&gt;Commodity codes, standard descriptions, supplier records, and route templates live per client. Cross-contamination is the failure mode most single-trader systems produce when pushed into multi-trader use. The &lt;a href="https://www.icustoms.ai/blogs/tss-software-freight-forwarders/" rel="noopener noreferrer"&gt;scaling TSS declarations&lt;/a&gt; breakdown lists per-client reference data as a core requirement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Validate before submission
&lt;/h2&gt;

&lt;p&gt;Client EORI, UKIMS position, item count under 99, description quality, origin documentation. Rejections after submission cost far more than pre-checks in front of it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Route responses back to context
&lt;/h2&gt;

&lt;p&gt;Every response — acceptance, rejection, amendment request — should return to a queue tagged with the client and the source document, not to a shared inbox.&lt;/p&gt;

&lt;h2&gt;
  
  
  Observe by client
&lt;/h2&gt;

&lt;p&gt;Dashboards need per-client cycle times, rejection rates, and month-end multiples. Aggregate views hide the accounts costing you the most.&lt;/p&gt;

&lt;p&gt;See this workflow running in a live multi-client environment. &lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>workflow</category>
      <category>tss</category>
      <category>freightoperations</category>
      <category>declaration</category>
    </item>
    <item>
      <title>Designing the TSS Submission Workflow Around Your Data</title>
      <dc:creator>iCustoms</dc:creator>
      <pubDate>Thu, 10 Sep 2026 09:08:56 +0000</pubDate>
      <link>https://dev.to/icustoms12/designing-the-tss-submission-workflow-around-your-data-32c7</link>
      <guid>https://dev.to/icustoms12/designing-the-tss-submission-workflow-around-your-data-32c7</guid>
      <description>&lt;h2&gt;
  
  
  The workflow decides the outcome
&lt;/h2&gt;

&lt;p&gt;A TSS integration succeeds when the workflow around it fits the way declarations actually arrive. That means designing for uneven load, exceptions and human review before you finalise the code path.&lt;/p&gt;

&lt;h2&gt;
  
  
  Model the tenth of the month
&lt;/h2&gt;

&lt;p&gt;Supplementary declarations concentrate on a monthly deadline. A workflow that handles average load but not peak load will collapse when it matters most. Size the queue for peak, not average. The &lt;a href="https://www.icustoms.ai/blogs/tss-api-vs-manual/" rel="noopener noreferrer"&gt;portal to API decision guide&lt;/a&gt; explains why peak handling is the deciding metric for many organisations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Split lanes by movement type
&lt;/h2&gt;

&lt;p&gt;Standard goods take one lane, controlled goods take another, and exceptions have a manual review path. Trying to run all traffic through one queue removes the operational advantages hybrid gives you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep humans in the loop where it matters
&lt;/h2&gt;

&lt;p&gt;Automated does not mean unsupervised. Route exceptions and rejections to a queue a person owns, with an SLA that fits the declaration deadline.&lt;/p&gt;

&lt;h2&gt;
  
  
  Make retries observable
&lt;/h2&gt;

&lt;p&gt;If a rejection retries silently and fails again, nothing improves. Every retry event needs a log, a status and a threshold at which a human is paged.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instrument every stage
&lt;/h2&gt;

&lt;p&gt;Time-to-submit, time-to-response, rejection rate by field, retry rate by cause. These numbers tell you where the workflow is weakest.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;See a full TSS submission workflow with queue design and exception handling. &lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>tss</category>
      <category>workflow</category>
      <category>data</category>
    </item>
    <item>
      <title>Designing a Reliable TSS Declaration Workflow</title>
      <dc:creator>iCustoms</dc:creator>
      <pubDate>Wed, 09 Sep 2026 07:43:01 +0000</pubDate>
      <link>https://dev.to/icustoms12/designing-a-reliable-tss-declaration-workflow-1lhm</link>
      <guid>https://dev.to/icustoms12/designing-a-reliable-tss-declaration-workflow-1lhm</guid>
      <description>&lt;p&gt;A dependable TSS pipeline looks the same across most stacks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stage 1: Ingest
&lt;/h2&gt;

&lt;p&gt;Pick up supplier invoices, packing lists and transport documents from email, SFTP or a shared drive. Normalise into a single schema before anything else runs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stage 2: Enrich
&lt;/h2&gt;

&lt;p&gt;Look up party data, commodity codes and licences from your master data. If the tool cannot reach your ERP, half the value is gone. For a broader map of the workflow, this &lt;a href="https://www.icustoms.ai/blogs/tss-automation-software/" rel="noopener noreferrer"&gt;TSS software workflow reference&lt;/a&gt; is useful.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stage 3: Validate
&lt;/h2&gt;

&lt;p&gt;Commodity code exists, currency and digit count are correct, document codes reconcile with tariff requirements, mass and package counts agree with the invoice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stage 4: Submit
&lt;/h2&gt;

&lt;p&gt;Programmatic submission with idempotent retries and clear correlation IDs back to the source document.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stage 5: Handle exceptions
&lt;/h2&gt;

&lt;p&gt;Failures route to the right person with enough context to fix them, not just a raw error code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stage 6: Audit
&lt;/h2&gt;

&lt;p&gt;Every step, every change, every submission timestamped and exportable.&lt;/p&gt;

&lt;p&gt;Map this workflow against iCustoms. &lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>tss</category>
      <category>integration</category>
      <category>automation</category>
      <category>ai</category>
    </item>
    <item>
      <title>Modelling a Declaration-to-GMR Workflow</title>
      <dc:creator>iCustoms</dc:creator>
      <pubDate>Tue, 08 Sep 2026 07:20:42 +0000</pubDate>
      <link>https://dev.to/icustoms12/modelling-a-declaration-to-gmr-workflow-59ai</link>
      <guid>https://dev.to/icustoms12/modelling-a-declaration-to-gmr-workflow-59ai</guid>
      <description>&lt;h2&gt;
  
  
  Stages as states
&lt;/h2&gt;

&lt;p&gt;Treat the movement as a state machine.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;declarations_created&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mrns_issued&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gmr_built&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;checked_in&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;embarked&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;inspection_resolved&lt;/code&gt;
## Transitions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each transition depends on the previous state. &lt;code&gt;gmr_built&lt;/code&gt; cannot occur without at least one &lt;code&gt;mrn_issued&lt;/code&gt; on the load. &lt;code&gt;checked_in&lt;/code&gt; cannot occur without a valid GMR whose vehicle and trailer match the physical unit at the barrier.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ownership of each transition
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Trader or intermediary produces declarations that trigger MRN issue.&lt;/li&gt;
&lt;li&gt;Haulier drives &lt;code&gt;gmr_built&lt;/code&gt; (either automated via TSS or manual via GVMS).&lt;/li&gt;
&lt;li&gt;Carrier verifies at &lt;code&gt;checked_in&lt;/code&gt; and notifies HMRC at &lt;code&gt;embarked&lt;/code&gt;.
You can compare that ownership model against the source in this &lt;a href="https://www.icustoms.ai/blogs/tss-gvms-gmr/" rel="noopener noreferrer"&gt;declaration-to-GMR walkthrough&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Mutability window
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;gmr_built&lt;/code&gt; state remains mutable until the boarding barcode scan triggers the &lt;code&gt;checked_in&lt;/code&gt; to &lt;code&gt;embarked&lt;/code&gt; transition. That is the update window your ops tooling should expose.&lt;/p&gt;

&lt;h2&gt;
  
  
  Failure surface
&lt;/h2&gt;

&lt;p&gt;Most operational failures live at two transitions: MRN issued to GMR built (late or wrong-format references) and GMR built to checked in (vehicle and trailer mismatches).&lt;/p&gt;

&lt;p&gt;Build ops workflows that surface these state changes automatically. &lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>gvms</category>
      <category>customs</category>
      <category>logistics</category>
      <category>ai</category>
    </item>
    <item>
      <title>ENS Workflow Design for Northern Ireland Freight Teams</title>
      <dc:creator>iCustoms</dc:creator>
      <pubDate>Mon, 07 Sep 2026 08:11:57 +0000</pubDate>
      <link>https://dev.to/icustoms12/ens-workflow-design-for-northern-ireland-freight-teams-408g</link>
      <guid>https://dev.to/icustoms12/ens-workflow-design-for-northern-ireland-freight-teams-408g</guid>
      <description>&lt;h2&gt;
  
  
  The workflow problem
&lt;/h2&gt;

&lt;p&gt;Teams that treat ENS as customs work miss the deadline. ENS binds to the transport booking, not the customs paperwork window.&lt;/p&gt;

&lt;h3&gt;
  
  
  Recommended workflow
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Booking created in the TMS.&lt;/li&gt;
&lt;li&gt;Consignment data pulled into the ENS builder.&lt;/li&gt;
&lt;li&gt;XI EORI validated at booking, not at submission.&lt;/li&gt;
&lt;li&gt;Description matched against the approved product library.&lt;/li&gt;
&lt;li&gt;ENS submitted through ICS2.&lt;/li&gt;
&lt;li&gt;Movement Reference stored against the booking.&lt;/li&gt;
&lt;li&gt;Customs route selected (simplified, internal market, full).&lt;/li&gt;
&lt;li&gt;Supplementary declarations auto-generated where simplified.
The full workflow is walked through in the &lt;a href="https://www.icustoms.ai/blogs/tss-ens-northern-ireland/" rel="noopener noreferrer"&gt;Windsor Framework ENS&lt;/a&gt; reference.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Split of responsibility
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Trader: master data, descriptions, EORI check.&lt;/li&gt;
&lt;li&gt;Carrier: legal ownership of ENS.&lt;/li&gt;
&lt;li&gt;Forwarder: submission and ICS2 response handling.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Corrections
&lt;/h3&gt;

&lt;p&gt;Corrections applied only to downstream customs declarations create mismatch flags. Apply at the ENS source and cascade forward.&lt;/p&gt;

&lt;p&gt;Design ENS workflows that hold up under audit — &lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>workflow</category>
      <category>customs</category>
      <category>operations</category>
      <category>ni</category>
    </item>
    <item>
      <title>The 12-Step Workflow Behind a Valid TSS Declaration</title>
      <dc:creator>iCustoms</dc:creator>
      <pubDate>Fri, 04 Sep 2026 06:59:42 +0000</pubDate>
      <link>https://dev.to/icustoms12/the-12-step-workflow-behind-a-valid-tss-declaration-2lbn</link>
      <guid>https://dev.to/icustoms12/the-12-step-workflow-behind-a-valid-tss-declaration-2lbn</guid>
      <description>&lt;h2&gt;
  
  
  Why a Workflow Beats a Checklist
&lt;/h2&gt;

&lt;p&gt;A checklist tells you what. A workflow tells you what and in what order, so the same team gets the same result every day.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 12 Steps
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Confirm the declaration type.&lt;/li&gt;
&lt;li&gt;Gather invoice, packing list and transport document.&lt;/li&gt;
&lt;li&gt;Pull party details from records.&lt;/li&gt;
&lt;li&gt;Process each goods line separately.&lt;/li&gt;
&lt;li&gt;Confirm commodity code currency and digit count.&lt;/li&gt;
&lt;li&gt;Read the Tariff Requirements section and note document codes.&lt;/li&gt;
&lt;li&gt;Retrieve or write the approved product description.&lt;/li&gt;
&lt;li&gt;Reconcile weights, package counts and values against documents.&lt;/li&gt;
&lt;li&gt;Confirm origin and hold evidence for preference claims.&lt;/li&gt;
&lt;li&gt;Attach certificate references for controlled goods.&lt;/li&gt;
&lt;li&gt;Verify scheme authorisation validity for the movement date.&lt;/li&gt;
&lt;li&gt;Run the completeness and consistency check.
## Where It Usually Breaks&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Steps 5, 6 and 8. Codes drift, the Tariff Requirements section gets skipped, and reconciliation is treated as a formality. The &lt;a href="https://www.icustoms.ai/blogs/prepare-customs-data-for-tss/" rel="noopener noreferrer"&gt;TSS submission data checklist&lt;/a&gt; explains why each step exists.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to Automate First
&lt;/h2&gt;

&lt;p&gt;Extraction of invoice and packing list fields, then validation of the joined dataset. Submission comes last, and only against clean data.&lt;/p&gt;

&lt;p&gt;Automate the boring 12 without losing the guardrails. &lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>tss</category>
      <category>workflow</category>
      <category>declaration</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
