The MSSQL Fulfillment Channel connector uses a Microsoft SQL Server database as a fulfillment channel for the app. It writes shipping requests and purchase orders into staging tables in your database and reads fulfillments, purchase orders, inventory, and products back into the app. The connector is in beta, and the Pipe17 support team helps you set it up.
With this connector, you can:
- Send shipping requests that are ready for fulfillment to your MSSQL staging tables every 15 minutes.
- Pull fulfillments and tracking numbers from your database into the app every 15 minutes.
- Send purchase orders to your database and pull processed purchase orders back into the app.
- Pull a full inventory snapshot every 15 minutes and your product catalog once a day.
- Create your warehouse locations in the app from the connector configuration.
Setup
Before you begin, make sure you have:
- The connector turned on for your organization. This connector is in beta, so submit a support request to turn it on.
- A Microsoft SQL Server database that the app can reach over the network. If your server only accepts connections from approved IP addresses, ask the support team which addresses to allow.
- The server hostname or IP address, the port (default
1433), and the database name. - A SQL Server service account with read and write access to the staging tables and read access to the inventory and product views.
- The shipping request staging tables (header and detail) in your database. If you plan to use purchase orders, you also need the purchase order staging tables.
- Your warehouse location codes. The support team adds them to the connector configuration.
To connect MSSQL Fulfillment Channel:
- Navigate to Integrations in the app.
- Click Add Integration, and then select MSSQL Fulfillment Channel.
- Enter your server hostname or IP address in the Server Host field, for example
db.example.com. - Enter the TCP port in the Port field. The default is
1433. - Enter the name of your database in the Database Name field.
- Enter the service account name in the Username field.
- Enter the service account password in the Password field.
- Leave Enable Encryption (SSL/TLS) on. This encrypts the connection and is on by default.
- Leave Trust Server Certificate off unless your server uses a self-signed certificate in a development or test environment.
- Click Connect.
- After you connect, toggle on the flows you want to use: Push shipping requests to MSSQL, Pull fulfillments from MSSQL, Push purchase orders to MSSQL, Pull purchase orders from MSSQL, Pull inventory from MSSQL, Pull products from MSSQL, and Pull locations. All flows are off by default.
The Connect pop-up also shows a link to request assistance. Use it if you want the support team to help you configure the connection, your staging table names, and your locations.
When you connect, the app checks that it can sign in to your database and that the staging tables exist. If you turn on inventory or products, it also checks that the source view exists.
Settings
| Setting | Description | Options/Default |
|---|---|---|
| Push shipping requests to MSSQL | Writes shipping requests that are ready for fulfillment into your shipping request staging tables. | On/Off. Default: Off |
| Process only shipping requests for specific order IDs | Sends only the shipping requests for the order IDs you list that changed in the last 24 hours. Use this while testing. | Optional. Empty sends all |
| Pull fulfillments from MSSQL | Reads shipped orders, tracking numbers, and shipped quantities from your database. | On/Off. Default: Off |
| Fulfillment List Query | A custom SQL query that lists shipped orders. It must return TranNumber, ShopOrderId, and ShipDate. |
Optional. Empty uses the default query |
| Fulfillment Detail Query | A custom SQL query that returns the shipment details for one order, including tracking number, shipping method, line, and quantity. | Optional. Empty uses the default query |
| Push purchase orders to MSSQL | Writes purchase orders that are ready for fulfillment into your purchase order staging tables. | On/Off. Default: Off |
| Pull purchase orders from MSSQL | Reads approved or updated purchase orders from your purchase order staging tables. | On/Off. Default: Off |
| Purchase Order List Query | A custom SQL query that lists processed purchase orders. It must return TranNo, VendorID, Status, TranDate, and ProcessStatus. |
Optional. Empty uses the default query |
| Purchase Order Detail Query | A custom SQL query that returns the header and line details for one purchase order. | Optional. Empty uses the default query |
| Pull inventory from MSSQL | Reads a full stock snapshot from your inventory view. Inventory rows are matched to locations in the app by warehouse code, so set up locations first. | On/Off. Default: Off |
| Inventory Source View | The SQL view that holds your inventory feed. You can include the schema, for example dbo.MyInventoryView. |
Optional. Empty uses the default view |
| Inventory Locations | The warehouse codes to pull stock for, one per row. Add a code when you open a new warehouse or store. | Optional. Empty uses the default list |
| Inventory Item Types | The item types to include, for example Finished Good. |
Optional. Empty uses the default list |
| Inventory Snapshot Query | A custom SQL query that returns the stock snapshot. It must return LocationID, SKU, OnHand, Committed, OnPO, OnTransfer, and Available, sorted by LocationID and SKU, and must include the $afterFilter placeholder. |
Optional. Empty uses the default query |
| Pull products from MSSQL | Reads your product catalog from your product view. Products in the app with the same SKU are updated. | On/Off. Default: Off |
| Product Source View | The SQL view that holds your product feed, optionally with the schema. | Optional. Empty uses the inventory source view |
| Product Item Types | The item types to include, for example Finished Good. |
Optional. Empty uses the default list |
| Product Snapshot Query | A custom SQL query that returns one row per SKU, sorted by SKU, and must include the $afterFilter placeholder. |
Optional. Empty uses the default query |
| Pull locations | Creates a location in the app for each warehouse in the connector configuration. The support team sets up this list for you. | On/Off. Default: Off |
Flows
| Flow | Direction | Notes |
|---|---|---|
| Shipping requests | Pipe17 → MSSQL | Runs every 15 minutes. Sends shipping requests that are Ready for Fulfillment and assigned to this connector. The app writes one header row and one detail row per line item. Accepted shipping requests move to Sent to Fulfillment. If a shipping request is already in the staging table, the app doesn’t write it again. If the database rejects it, the shipping request moves to Failed. |
| Fulfillments and tracking | MSSQL → Pipe17 | Runs every 15 minutes. Reads orders shipped since the last run (the first run looks back 14 days) and creates one fulfillment per tracking number. |
| Purchase orders | Pipe17 → MSSQL | Runs every 15 minutes. Sends purchase orders that are Ready for Fulfillment. Accepted purchase orders move to Sent to Fulfillment. If the database rejects one, it moves to Review Required. |
| Purchase orders | MSSQL → Pipe17 | Runs every 15 minutes. Reads purchase orders that your system has processed since the last run (the first run looks back 14 days). |
| Inventory | MSSQL → Pipe17 | Runs every 15 minutes. Reads a full snapshot of active, sellable items for the listed warehouse codes, including on hand, committed, on order, in transfer, and available quantities. Rows for warehouse codes that don’t match a location in the app are skipped. |
| Products | MSSQL → Pipe17 | Runs once a day. Reads one row per SKU. Products that haven’t changed aren’t updated. |
| Locations | Configuration → Pipe17 | Runs every 15 minutes. Creates locations from the warehouse list in the connector configuration. Locations that already exist are skipped. |
| Cancellations | Not supported | The connector doesn’t send cancellations. If you cancel a shipping request that is already in the staging table, cancel it in your system as well. |
Troubleshooting
The connection fails when you click Connect
The app couldn’t sign in to your database. Check the Server Host, Port, Database Name, Username, and Password, and make sure your server accepts connections from the app. If the error mentions the certificate and your server uses a self-signed certificate in a test environment, turn on Trust Server Certificate.The connection fails with "Staging tables not found"
The app couldn’t find one or more staging tables in the database. Create the tables listed in the error, or ask the support team to update the table names in the connector configuration. If you turned on a purchase order flow, the purchase order staging tables must also exist.The connection fails with "source view not found"
The inventory or product view doesn’t exist in the database. Check Inventory Source View or Product Source View, including the schema name.A shipping request moved to Failed
The database rejected the rows, for example because a value is too long for its column, or the shipping request had no transaction number. Fix the data on the order, and then send the shipping request again. If the database was unreachable, the app retries on its next run instead.Inventory doesn’t update
Inventory is matched to locations in the app by warehouse code. Make sure Pull locations is on and the locations exist, and that each warehouse code is listed under Inventory Locations. To learn more, see Getting Started with Locations in Pipe17.
Need Help?
If you need additional assistance:
- Use Ask Pippen, our AI agent, located at the top of the platform page.
- Submit a support request with as much relevant detail as possible. Learn how to submit a request.
We’re here to help you succeed with your operations.
Comments
0 comments