Email automationFishbowl Agent view

How to automate email into Fishbowl

Short answer

Monitor a shared mailbox through Microsoft Graph or IMAP, classify each message, extract fields with a model or rules, match customers, vendors and parts against Fishbowl, and create draft sales orders or propose PO updates through the Fishbowl API. A person reviews anything below a confidence threshold before it is saved.

A lot of Fishbowl customers still receive orders as PDF attachments or plain emails to an orders@ address, and vendors confirm purchase orders by reply. Someone reads each message, finds the customer, types lines into a sales order and hopes the part numbers match.

The tasks are repetitive but not trivial. Customers use their own part numbers, quantities arrive in different units, and the email may be a reply thread with the real order in message three. Automating this means treating email as unstructured input into a structured, validated process, not a magic parser.

Fishbowl is well placed for this because its sales order and PO objects are straightforward, and its API or import tools can take structured data. The hard part is matching and review, not the final write.

What teams use it for

Customer PO to sales order

Extract customer, PO number, ship-to, lines, quantities and requested dates from the email body or attached PDF and create a draft sales order.

Quote request intake

Recognise an RFQ, match requested parts, and create a quote or a task for a salesperson with a pre-filled lookup of stock and last price.

Vendor PO acknowledgement

Read replies with confirmed dates or price changes and propose updates to the matching PO, flagged for a buyer.

Shipment notice handling

Link advance ship notices and tracking emails to open POs so receiving knows what to expect.

Order change requests

Detect cancel or change language on an existing order number and route it to the right person with the order summary attached.

Vendor invoice routing

Send invoice emails to an accounting queue with PO match hints, ready for entry into your accounting system.

Fishbowl integration surface

  • Fishbowl REST API on current versions for creating and reading sales orders, purchase orders, parts and customers, authenticated with an approved integration app (verify endpoints for your version).
  • Legacy JSON API over the Fishbowl server's TCP socket, used by older tooling and some SDK libraries.
  • CSV import for sales orders, purchase orders and parts in the client, which supports a staged file approach where a reviewed file is imported.
  • MySQL database for read-only matching: customer, vendor, part and customer part number tables, and the po and so tables for duplicate checks.
  • Fishbowl customer part number and vendor part number mappings, which are the right place to resolve customer-specific SKUs.

How it works

  1. 1

    Connect the mailbox

    Use Microsoft Graph with application permissions limited to one mailbox, or IMAP with an app password, and move processed mail into folders rather than deleting it.

  2. 2

    Classify each message

    Decide order, quote request, acknowledgement, invoice, change request or other. Start with sender and subject rules, add a model for the ambiguous rest.

  3. 3

    Extract structure

    Parse the body and attachments into a schema: sender, reference numbers, lines, dates. Keep the original email and file linked to the record.

  4. 4

    Match to Fishbowl

    Resolve customer by sender domain and PO history, parts by customer part number then fuzzy match on description, and flag unknowns instead of guessing.

  5. 5

    Score and route

    Attach confidence per field. Clean high-confidence orders create drafts; anything else lands in a review queue showing the email beside the proposed order.

  6. 6

    Write to Fishbowl

    Create the sales order as an entered or draft state through the API, attach the source file, and store the email message ID to prevent duplicates.

Example flows

Repeat customer order by email

Trigger: A known customer emails a PO as a PDF to orders@.

  1. The classifier tags it as an order and extracts the PDF text.
  2. Customer and customer part numbers are matched from history.
  3. A draft sales order is created with the PDF attached.
  4. A CSR reviews only the exceptions, such as a changed price.

Result: Routine orders are entered in a minute of review rather than ten minutes of typing.

Supplier pushes out a date

Trigger: A vendor replies that a PO line will ship two weeks late.

  1. The reply is matched to the PO by number or thread ID.
  2. The new date is extracted and compared with current due date.
  3. The buyer gets a proposed change and the affected sales orders.

Result: Promise dates to customers can be reset before they are missed.

Keeping data on-prem

Where Fishbowl and the mail server are both on-premises or in a private cloud, run the pipeline inside the same network and use a locally hosted open-weight model, for example served with vLLM or Ollama, to classify and extract. Orders contain pricing, drawings references and customer details, so keeping inference local avoids sending them to a public API. Use an on-prem OCR engine for PDF attachments, store the email and extraction results in your own database, and call Fishbowl over the LAN.

Security checklist

  • Give the mailbox integration the narrowest scope: one mailbox, read plus move, nothing tenant-wide.
  • Treat email content as untrusted input; strip active content from attachments and never let an email instruct the system to take actions beyond defined fields.
  • Guard against spoofed senders by checking SPF, DKIM and DMARC results before auto-creating orders.
  • Require human approval for new customers, bank detail changes and any unusual quantity or price.
  • Retain the original email and extraction result with the order for audit.

Ways to get it done

Rules plus Power Automate or Zapier

Effort: Days; breaks when senders change layouts.

A few structured senders with consistent formats.

In-house pipeline with a model and review UI

Effort: Four to eight weeks including the review queue and matching rules.

Teams with developers and a high volume of varied emails.

Partner build with Netray

Effort: Pilot on one mailbox and document type, then widen.

You want on-prem models, tuned matching to your customer part numbers and an exception workflow.

Pitfalls

  • !Auto-creating orders from unverified senders, which opens the door to fraudulent POs.
  • !Matching parts only by description and quietly picking the wrong SKU.
  • !Processing the same email twice after a retry, producing duplicate sales orders.
  • !Ignoring units of measure, so a case-of-12 order becomes 12 cases.
  • !Skipping the review queue early on, then losing trust after the first bad order.

Frequently asked questions

Does Fishbowl read emails to create orders?

Not natively as far as I know. Fishbowl can send emails such as order documents, but turning inbound emails into orders needs an external pipeline that extracts the content and creates records through the API or import tools. Check your version for any newer add-ons.

Should the system create or just draft the order?

Draft first. Create the order in an early state, attach the source, and let a person promote it until accuracy is proven for that customer. Many teams auto-promote only for repeat customers where every field matched with high confidence.

How do I handle customer-specific part numbers?

Use Fishbowl's customer part number mapping where you have it, and build the matcher on that plus prior orders. When a number is unknown, route the line to review and let the correction update the mapping so the same miss does not repeat.

Can AI do this safely with our order data?

Yes with controls: local or contractually private inference, a schema the model must fill, validation against Fishbowl master data, and human review on low confidence. The model proposes; deterministic code and a person decide what is written.

What about attachments that are scans?

Run OCR first, then extraction. Scanned POs vary a lot, so expect more review at the start. The document-OCR approach on the sibling page covers confidence thresholds and layout handling in more detail.

Want Email automation working on your Fishbowl?

A free 30 minute assessment: we map the integration path for your version and setup, and where it should run.

Get a free assessment