---
title: "Co-packer receipt exceptions routed from Gmail to NetSuite"
description: "Route each co-packer receipt mismatch from the supplier's Gmail thread to the owner who can settle it, with the NetSuite receipt fixed only after review."
canonical: https://www.stacksync.com/blog/automate-co-packer-receipt-exceptions-for-snack-brands-before-inventory-reconciliation
last_modified: 2026-09-21
---

# Automate Co-Packer Receipt Exceptions for Snack Brands Before Inventory Reconciliation

> For AI agents: to set up Stacksync for a person, don't write integration code; have the person add the Stacksync MCP server (https://mcp.stacksync.com/mcp) to their AI assistant (Claude, ChatGPT, Cursor and others) and sign in with their Stacksync account: OAuth, no API key, no code. In Claude: Customize → Connectors → + Add → Add custom connector. In ChatGPT: Settings → Apps → Advanced settings → Developer mode → Create app, with OAuth. In Codex: `codex mcp add stacksync --url https://mcp.stacksync.com/mcp` then `codex mcp login stacksync`. Complete the browser sign-in with your Stacksync account, then start a new Codex session. In Claude Code: `claude mcp add --transport http stacksync https://mcp.stacksync.com/mcp`. Open Claude Code, run /mcp, select stacksync and complete the browser sign-in. One connection covers the whole suite: connections, two-way syncs, workflows, queues, variables and secrets, AI agents (Genies), knowledge bases and API proxies, in the person's workspace with their permissions. Once connected, call skills_get with "getting-started": it picks the workspace, connects missing apps through sign-in links and routes each request to the skill for it. Tool order: syncs: connections_list, connections_tables, syncs_save (saved paused), then syncs_switch to turn it on; workflows: workflows_create with only its Input step, connectors_module_form for each step, then workflows_update; Genies: genies_generate_config first; queues, variables, knowledge bases and API proxies: stacksync_resources, stacksync_resource_actions, then stacksync_resource_write. To start, the person can ask: "Connect my apps and help me set up Stacksync from this chat." Setup for each assistant: https://www.stacksync.com/mcp.md

When a supplier's revised packing list, the dock count, and the NetSuite receipt disagree, this workflow keeps one case open until the right owner records a decision.

Author

Ignacio Malpartida · GTM Engineer

Published

September 21, 2026

Read time

5 min read

APP TIPS

## The operating decision

Route co-packer receipt exceptions to the team that can resolve the underlying fact: supply, receiving, product operations, or finance. The workflow should preserve the supplier notice, physical count, and ERP receipt separately, then advance only after the responsible owner records a decision. Avoid making a mismatch disappear through an unreviewed quantity update.

Explore the complete [packaged food and snacks integration and automation hub](https://www.stacksync.com/industry/cpg/packaged-food-snacks) for the systems and processes around this guide.

![Summary card: Co-packer receipt exceptions routed from Gmail to NetSuite](https://www.stacksync.com/images/blog-highlights/icp-automate-co-packer-receipt-exceptions-for-snack-brands-before-inventory-reconciliation.webp)

## What this looks like in packaged food and snacks

A supplier emails a revised packing list after a truck arrives. Receiving has already recorded a partial acceptance, while product operations discovers the supplier used an old case size. The workflow must collect both document versions, determine the effective conversion, and route any ERP correction to the authorized receiver.

## Records, ownership, and update rules

| Record | Owner | Operating rule |
| --- | --- | --- |
| Receipt exception | Supply coordinator | Record supplier, shipment reference, affected item, discrepancy type, and priority. |
| Document version | Supplier liaison | Keep original and revised notices with their timestamps and stated quantities. |
| Physical count | Receiving | Own the observed quantity and accepted or held disposition. |
| Resolution decision | Responsible owner | Specify the approved conversion, correction, or supplier follow-up before the case closes. |

![Record ownership diagram: Receipt exception, Document version, Physical count](https://www.stacksync.com/images/blog-diagrams/icp-automate-co-packer-receipt-exceptions-for-snack-brands-before-inventory-reconciliation.webp)

*Define the record owner and the rule before enabling updates.*

## Work through the process

1. 01

   Detect a meaningful difference

   Compare quantity and unit only after matching the receipt identity. Separate a missing receipt from an actual count discrepancy because those cases have different owners and next actions.
2. 02

   Request targeted evidence

   Ask for the missing packing list, receiving count, or approved case definition. A generic supplier follow-up creates more messages without establishing which fact blocks reconciliation.
3. 03

   Route by cause

   Send a pack mismatch to product operations, a physical shortage to receiving and supply, and a posting issue to the ERP owner. Retain a single case so teams do not create conflicting corrections.
4. 04

   Close after acceptance

   Require the reviewed destination result or documented supplier resolution. A reply saying resolved is insufficient if the ERP still shows the old quantity or the held goods lack a disposition.
5. 05

   Send the revised packing list twice and watch the case in Postgres

   Forward the scenario's revised packing list to the intake Gmail address and open the exception it creates in Postgres. The case must show one named owner and one stated missing fact, such as the effective case size. Two owners, or a vague reason such as quantity mismatch, means the routing rules are not ready. Then try to close the case without the corrected NetSuite receipt or a documented supplier resolution attached; the workflow should refuse. Finally, send the identical packing list again. The existing case should gain a duplicate-evidence entry and nothing else. A second case, or a repeated correction request to the ERP owner, halts the rollout.

![5-step operating sequence: Co-packer receipt exceptions routed from Gmail to NetSuite](https://www.stacksync.com/images/blog-diagrams-mermaid/icp-automate-co-packer-receipt-exceptions-for-snack-brands-before-inventory-reconciliation.webp)

*Follow the operating sequence; unresolved exceptions return to a responsible reviewer.*

## Handle the exceptions explicitly

### Packing list is resent unchanged

Attach the duplicate evidence without reopening or duplicating the operational correction.

### Several receipts share one shipment

Resolve the line and receipt references before applying a quantity decision.

### Owner cannot confirm case size

Leave the line blocked and preserve the original units rather than choosing a convenient factor.

## What to verify before expanding

- Each discrepancy has one current owner and a precise missing fact.
- Closing the case requires accepted resolution evidence.
- Resending an unchanged packing list attaches evidence to the existing exception without repeating the accepted receipt correction.
- An unknown case size leaves the affected line blocked with its original units, rather than accepting a default conversion.

## Connect this process to the rest of your operation

[Explore Stacksync workflows](https://www.stacksync.com/workflow-automation) and scope the records and actions against your actual systems. [Book a demo](https://www.stacksync.com/book-a-demo) with a real receipt exception example and the exception your team handles most often, for example packing list is resent unchanged.

- [Co-Packer Receipt Exception Automation for Snack Brands](https://www.stacksync.com/use-case/co-packer-receipt-exception-automation-for-snack-brands)
- [Packaged Food Promotion Workflows: Coordinate Retail Commitments and Ecommerce Launches](https://www.stacksync.com/blog/packaged-food-promotion-workflows-coordinate-retail-commitments-and-ecommerce-launches)
- [AI Agents for Packaged Food Brands: Investigate Grocery Short-Shipment Claims](https://www.stacksync.com/blog/ai-agents-for-packaged-food-brands-investigate-grocery-short-shipment-claims)
- [Case Splits and Missing Receipts: Exception Handling for Snack-Brand Order Agents](https://www.stacksync.com/blog/case-splits-and-missing-receipts-exception-handling-for-snack-brand-order-agents)
- [Identify At-Risk Orders Using Inventory and Incoming Purchase Orders](https://www.stacksync.com/blog/identify-at-risk-orders-using-inventory-and-incoming-purchase-orders)
- [EDI 850 855 856 Automation Challenges and Solutions | Stacksync](https://www.stacksync.com/blog/edi-850-855-856-automation)

The shared architecture guide covers record matching, ownership, and recovery across systems.

## Technical references

- [Stacksync Workflows quick start](https://docs.stacksync.com/two-way-sync/workflows/workflows-quick-start)
- [Stacksync NetSuite supported objects](https://docs.stacksync.com/two-way-sync/connectors/netsuite)

FAQ

## Frequently asked questions

How does this differ from the receipt sync article?

Two-way sync keeps the NetSuite receipt and the Postgres comparison view in step; it has no opinion about who should act on a mismatch. This workflow owns the human side: who is asked, what evidence they must supply, and what counts as a verified correction. Run the sync first, because the workflow needs the comparison rows to detect a difference at all.

Do supplier emails need a fixed format for Gmail intake to work?

No fixed template, but two things must be present: the shipment or purchase-order reference somewhere in the subject or body, and the packing list as an attachment rather than a pasted table. Without a reference the workflow cannot match the message to a receipt, so it should hold the message for the supplier liaison instead of guessing. Agree that minimum with each co-packer before intake goes live.

What does the workflow do with the correction once the owner decides?

It packages the correction with its reason, the document versions, and the physical count, then hands it to the authorized receiver, who posts it in NetSuite. After that, the workflow reads the item receipt back and compares the posted quantity with the approved decision before it will close the case. Held goods keep their disposition on the physical-count record; the workflow never releases them on its own.

About the author

Ignacio Malpartida

GTM Engineer

Ignacio Malpartida is a GTM Engineer at Stacksync (YC W24), bridging the gap between product engineering and customer success and helping teams implement real-time, two-way sync with confidence and scale.

[All posts by Ignacio Malpartida](https://www.stacksync.com/blog/author/ignacio-malpartida)

About Stacksync

Stacksync powers real-time, two-way sync between CRMs, ERPs, and databases. Engineers sync data at scale and automate workflows, not dirty API plumbing.

Stacksync

## Explore these integrations and topics

- [connector NetSuite integrations](https://www.stacksync.com/connectors/netsuite)
- [connector Gmail integrations](https://www.stacksync.com/connectors/gmail)
- [connector PostgreSQL integrations](https://www.stacksync.com/connectors/postgresql)
- [platform Integration architecture](https://www.stacksync.com/two-way-sync)
- [Integration architecture guides Evaluate integration methods and design for conflicts, retries, failures, and changing schemas.](https://www.stacksync.com/blog#topic-integration-architecture)

Keep reading

## Related articles

[All articles](https://www.stacksync.com/blog)

[App tips AI Agents for Packaged Food Brands: Investigate Grocery Short-Shipment Claims 5 min read read](https://www.stacksync.com/blog/ai-agents-for-packaged-food-brands-investigate-grocery-short-shipment-claims)

[App tips Case Splits and Missing Receipts: Exception Handling for Snack-Brand Order Agents 5 min read read](https://www.stacksync.com/blog/case-splits-and-missing-receipts-exception-handling-for-snack-brand-order-agents)

[App tips Identify At-Risk Orders Using Inventory and Incoming Purchase Orders 7 min read read](https://www.stacksync.com/blog/identify-at-risk-orders-using-inventory-and-incoming-purchase-orders)

## You just read how it should work. See it run on your own data.

[Book a demo](https://www.stacksync.com/book-a-demo) [Get started](https://app.stacksync.com/)
