A customs broker can automate preparation with ChatGPT this quarter: extract a supported EASA Form 1, list exceptions, and hand a reviewable draft to the person who files. “Automate customs” is too broad to serve as an acceptance criterion.
Repetitive certificate typing is the bottleneck. The failure mode is a model that files, classifies, or overwrites a quantity without showing the source. Keep a narrow deliverable with source references. Filing stays in the broker system of record.
Automate preparation first
Potential tasks include organizing a document list, transcribing identifiers through the supported tool, and presenting discrepancies for an operator. Each task needs a source reference and a clear definition of a successful output. Doana extracts EASA Form 1, not the entry.
With Doana, the currently exposed agent operation is EASA Form 1 extraction. Its tool catalog includes upload, extraction, result retrieval and usage inspection. It does not include customs filing or a binding classification service. ChatGPT without that tool is not Doana extraction.
Follow custom MCP connection prerequisites before the first certificate. Attach and call in the same turn.
Broker review table
Use columns for source document, field path, extracted value, uncertainty, reviewer decision, and corrected value. Preserve the value as extracted; record a correction separately so the original observation remains visible to later staff. Keep serial numbers as arrays in every cell.
Doana’s result includes per-field confidence and an uncertainty list. A high confidence value should not override a discrepancy in the source documents. The API guide shows the structure, including easa-form-1-v1 headers, items, release13 and release14.
Worked teaching example (invented tracking number DEMO-3, not a real certificate):
| Source | Field | Extracted | Uncertain? | Decision | Corrected |
|---|---|---|---|---|---|
| Form 1 DEMO-3 | items.0.box8PartNumber | DEMO-PN-001 | no | accept | — |
| Form 1 DEMO-3 | items.0.box9Quantity | 2 | no | hold — invoice says 1 | — |
| Form 1 DEMO-3 | items.0.box10SerialNumbers.0 | SN-4412 | yes (uncertainFields) | review PDF | — |
The extracted 2 stays in the table even if the broker later files 1 after investigation. That is the point of the extra columns.
Broker system of record
Customer, procedure, surety, who may submit, and the entry itself stay in the broker application. Doana stores an extraction job, not your declaration. Export reviewed fields only. Keep the original PDF (or your DMS link) with job_id so later staff can see the evidence.
A release certificate does not supply every fact needed for a customs declaration. Its document purpose is explained by EASA. Decisions about the shipment and its applicable requirements need the appropriate evidence and reviewer inside the broker platform.
Your integration should distinguish permission to extract from permission to send a message, update a record or submit a filing. Do not let text inside a document change those permissions.
Accountable decisions
Name the reviewer on the table before the pilot starts. If origin, valuation or procedure is missing from the packet, the cell stays unresolved. ChatGPT must not fill those gaps from general aviation knowledge or from an invoice description.
If the packet includes an FAA-only 8130-3, keep it off extract_easa_form1. The FAA availability page explains that there is no public FAA tool. Dual-release packets need a human to choose which certificate is extracted.
First-week pilot
Five EASA Form 1 files per personal account per UTC week, plus review time. That is enough to test the table, not to replace a broker team. Call get_usage at the start of the week. Failed or out-of-scope jobs refund the unit. Poll get_extraction_result while status is dispatch_pending, queued, running, or outcome_unknown; do not duplicate the job.
PDF 50 MB / 20 pages, JPEG/PNG 20 MB, no TIFF. ChatGPT must attach and call in the same turn. DOWNLOAD_URL_EXPIRED is a same-turn re-attach, not a reason to invent file_id. There is no public REST /extract and no FAA extraction tool.
If the broker’s system of record cannot store job_id, the pilot is incomplete: later staff will not see the evidence behind a corrected part number. Put job_id on the file the filer already opens.
ChatGPT without the MCP tool is not Doana. A typed table that “looks like Block 8” has no uncertainFields contract. Require the tool to run, or treat the output as untrusted transcription the same way you would treat an 8130-3 reading.
Evaluate before expanding
Use representative documents, including scans with ambiguous characters. Record field corrections, unresolved exceptions and time spent reviewing. A useful pilot makes these outcomes observable; it does not assume a promised percentage improvement from the chat.
If the assistant silently merges remarks or drops a serial from an array, that is a failed trial even if the chat looks tidy. Require uncertainFields to appear next to the item they affect.
Do not expand the pilot into invoice parsing or HS suggestions until the Form 1 table is stable. Those tasks need evidence Doana does not extract.
Connect ChatGPT without turning it into a filer
Add the custom MCP app, complete OAuth, and write the review table into the broker system before anyone is allowed to transmit. If the workspace cannot add a custom app, stop; a transcription is not this extraction product. Keep filing roles in the broker platform only.
Connect Doana in ChatGPT when the admin path exists. The public catalog still will not submit the entry even if the prompt begs.
See Doana’s customs agent workflow. Brokers wiring an internal agent can build on the customs API page.
