Document automation

Automating a delivery board from Dynamics 365 Business Central

Double-click, confirm, done: open Dynamics 365 Business Central orders land on the daily deliveries board with jobsite details joined in — and the columns that need human judgment stay human.

Pull from Business Central.bat
$ deliveries pull
Connecting to Business Central…
Open orders due in the next 14 days: 12
Joining address · contact · PM from contracts
SO015xxxx Apex Interiors Brooklyn, NY
SO015xxxx Meridian Builders Queens, NY
SO015xxxx Northgate GC Stamford, CT
… 9 more
? Write 12 rows to the deliveries board? [Y/n]
8
Fields filled per delivery
2
Columns that stay human
Y/N
Preview before anything is written
2 wk
Rolling pull window
STEP 1
Orders live in D365 BC
sales orders + contract records
STEP 2
Double-click pull
API fetch, next two weeks of open orders
STEP 3
Join jobsite details
address, contact, PM from the contract
STEP 4
Preview + Y/N
see every row before it's written
STEP 5
Board updated
8 fields per delivery; human columns untouched

The board is the business

At a national door hardware distributor, the day runs on a shared Excel sheet: the daily deliveries board. Which orders go out, to which jobsite, for which contractor, with whose phone number — dispatch, drivers, and the warehouse all read the same grid. Every fact on it already lived in Dynamics 365 Business Central. Someone still retyped it, order by order, every day.

Retyping isn't just slow — it's where the wrong job number and the stale address come from. The system of record and the board the crews read had no connection at all.

One double-click, with a preview

Now the operator double-clicks Pull from Business Central. The workflow calls the Business Central API for every open sales order due in the next two weeks, joins in the jobsite address, contact, and project manager from the contract record, and shows exactly what it's about to write — then asks Y/N before touching the board. Need specific orders instead of the date window? Name them on the command line and it pulls just those.

Eight fields land per delivery: contractor, job name, job number, contact, PM, sales order, and location. The two columns that need human judgment — labeling and truck type — are never written by the tool. The board stays theirs; the retyping is what disappeared.

Daily deliveries — one day's block from D365 BC stays yours
ContractorJob #Sales orderLocationCourierTruck type
Apex InteriorsJ-2417SO015xxxBrooklyn, NY
Meridian BuildersJ-2398SO015xxxQueens, NY
Northgate GCJ-2431SO015xxxStamford, CT

Names invented, shape real: the tinted cells arrive filled from Business Central after a Y/N preview; courier and truck type wait for a human who knows the day.

Built to survive a bad day

When the API is unreachable, the workflow degrades gracefully: the operator exports the Sales Orders list from Business Central's own Open in Excel and feeds it the file instead — same preview, same Y/N, same board. The quirks live in the docs, not in tribal memory: Business Central only exports the columns you can currently see, so the setup guide makes the required ones visible once, and anything without a delivery date gets reported back instead of guessed at. It shipped with a maintenance guide and a running edge-case log, like every workflow here.