Procurement

Procurement workflow from pending items to received, purchase order statuses, and distributor API ordering.

Written By Victor Raessen

Last updated 7 days ago

🚧 Module currently not available
The procurement module is currently in closed beta and does not accepting new participants. Onboarding will not resume before 2027.

The procurement module manages ordering products from distributors after a quote is approved. It tracks what needs to be ordered, groups items into purchase orders, submits them to distributors, and syncs everything back to your PSA.

Procurement is the bridge between sales and fulfilment. When a quote is approved, line items automatically appear as pending items. From there, you create purchase orders, submit them to distributors (via API, email, or manually), receive items as they arrive, and track the full audit trail. The entire flow ties back to your PSA β€” the exact entities created depend on which PSA you use.

Procurement workflow

  1. Quote approved β€” Product line items from Quotes automatically appear as pending items in Procurement. Services and items flagged as "does not require procurement" are excluded.

  2. Review pending items β€” Navigate to Procurement > Pending Items to see all items awaiting order. Dismiss items that don't need procurement (e.g., internal items) with a reason.

  3. Create purchase order β€” Group pending items into a purchase order, assigned to a distributor. Items from multiple quotes can be combined into a single PO.

  4. Approval (if configured) β€” Orders exceeding a configured value threshold are sent for internal approval before they can be placed.

  5. Place order β€” Submit the order to the distributor via API, email, or mark as manually submitted. Optionally skip distributor submission for internal/warehouse orders while still syncing to your PSA.

  6. PSA sync β€” Salesbuildr creates the corresponding entities in your PSA (tickets, charges, purchase orders, or sales orders β€” depending on your PSA).

  7. Receive items β€” Track received quantities and serial numbers as items arrive. Receiving data syncs back to your PSA where supported.

  8. Complete β€” The order is automatically marked complete when all items are received.

What each PSA creates

The entities Salesbuildr creates in your PSA differ significantly. Understanding these differences is important for your post-sale workflow.

Capability

Autotask

ConnectWise

HaloPSA

Standalone

Post-sale ticket

Ticket with charges (per line item, including cost and sell price)

Service ticket + converts opportunity products to ticket line items

Sales order with line items (not a ticket)

No PSA entity

Purchase order in PSA

Creates a PO entity in Autotask with line items, linked to the distributor company

Not supported β€” POs exist only in Salesbuildr

Creates a PO entity in Halo, linked to the supplier and sales order

Not applicable

Item receiving sync

Receiving records sync to Autotask PO items (quantity + serial number + date)

Not synced

Creates stock records in Halo (quantity, cost, supplier, serialized assets if configured)

Not applicable

Opportunity update

Pipeline stage updated via Opportunities stage mapping

Pipeline stage updated via stage mapping

Pipeline stage updated via stage mapping

Stage updated locally

Internal notes

Ticket note (internal only) + URL attachment linking to Salesbuildr quote

Initial description on service ticket

CRM note on the sales order

Stored locally

Shipping charge

Separate ticket charge with billing code from Autotask shipping type

Not synced as separate charge

Not synced as separate line

Not applicable

Autotask details

Autotask has the most complete integration. Salesbuildr creates:

  • A post-sale ticket with charges for each line item (operational charge type, with cost, sell price, quantity, and product link)

  • A purchase order entity in Autotask with line items, including ship-to address for dropship orders

  • Receiving records that sync back to Autotask PO items as you receive in Salesbuildr

Autotask PO creation requires the Enable for Procurement toggle in Admin > Integrations > Autotask > Purchase Order, a configured inventory location, and products synced to Autotask. Service-type items are excluded from both PO line items and ticket charges.

Note: Autotask creates tickets and purchase orders β€” not sales orders or contracts. To add products to Projects, use the Won Opportunity Wizard in Autotask manually.

ConnectWise details

ConnectWise creates a service ticket on your configured board and converts the won opportunity's products into service ticket line items using ConnectWise's native conversion mechanism.

Purchase orders are not created in ConnectWise β€” they exist only in Salesbuildr. You can still submit POs to distributors via API or email, but the PO entity is not synced to ConnectWise Manage. Item receiving is tracked in Salesbuildr only.

Configure ticket settings (board, status, priority, SLA, impact) in Admin > Integrations > ConnectWise > Ticket Settings.

HaloPSA details

HaloPSA creates two distinct entities:

  • A sales order (not a ticket) with line items, linked to the Halo quotation and opportunity. Each line includes cost, sell price, and supplier ID.

  • A purchase order entity in Halo, linked to the sales order and supplier company.

When items are received, Salesbuildr creates stock records in Halo. For products with a linked asset type, serialized asset records are created automatically.

All items in a Halo PO must belong to a single company. The distributor company must be configured as a supplier company type in Halo.

Standalone (no PSA)

Without a PSA connected, procurement still works for distributor ordering. Purchase orders are created and tracked in Salesbuildr, and can be submitted to distributors via API or email. All internal features work β€” approval workflows, item receiving, audit trail, PDF generation. No external entities are created.

Purchase order statuses

Status

Description

Pending

Order created, items can still be added or removed

Awaiting approval

Sent for internal approval β€” waiting for the designated approver to act

Email sent

PO PDF emailed to the distributor

Submitted

Order submitted via distributor API or marked as manually submitted

Partial

Some items received, not all

Completed

All items received (calculated automatically)

Cancelled

Order cancelled β€” all items returned to the pending items pool

Order types

  • Wholesale β€” Shipped to your location for staging, configuration, or internal stock

  • Dropship β€” Shipped directly from the distributor to the customer. Enter the customer's shipping address when placing the order.

Submission methods

When placing a purchase order, you choose how to submit it to the distributor:

  • API submission β€” Sends the order directly to the distributor's ordering API. Available for supported distributors (see below). The distributor's order number is stored automatically.

  • Email submission β€” Generates a PDF of the purchase order and emails it to the distributor. Available for any distributor with a configured email address.

  • Mark as submitted β€” For orders placed manually (phone, distributor portal). Optionally store a link to the external PO for reference.

  • Skip distributor submission β€” Submit to your PSA only, without sending to the distributor. Useful for internal/warehouse distributors or orders you'll place separately.

Supported distributors

Purchase orders can be submitted directly to supported Distributors via API:

Distributor

API

Email

Notes

Ingram Micro

Yes

Yes

OAuth2 authentication. Supports dropship, special bid numbers, and end-user info.

TD Synnex

Yes

Yes

Separate EU (API key, XML) and US (user/password, XML) implementations. Automatic order status polling.

Pax8

Yes

Yes

Cloud subscriptions. Handles commitment terms, billing periods (monthly, annual, multi-year), and provisioning.

Onetrail

Yes

Yes

Routed through Ingram Micro infrastructure.

For other distributors (Also, Westcon, Dicker Data, or any custom distributor), use email submission or mark as manually submitted.

Approval rules

Configure approval rules under Admin > Procurement > Approvals to require internal approval before purchase orders can be placed.

Each rule defines a value range (from/to amount) and an approver. When a purchase order's total falls within a rule's range, the order must be approved by the designated person before it can be submitted. The order creator cannot approve their own orders.

Rules are evaluated in order. If no rule matches (amount below thresholds, or the only matching rule's approver is the creator), no approval is required. Approval rules are snapshot onto the order at creation time β€” changing rules later does not affect existing orders.

When an order requires approval, it enters the awaiting approval status and the approver receives an email notification. The approver can reject the order (returning it to pending with a reason) or place it directly (which constitutes approval).

Products, services, and recurring items

Not all quote items enter the procurement pipeline:

Item type

Enters procurement?

Why

Products (hardware, physical)

Yes

Standard procurement items

Pax8 cloud subscriptions

Yes

Exception β€” Pax8-linked items always enter procurement regardless of product type, because the subscription is provisioned through the Pax8 API

Services and labour

No

Filtered out β€” services don't require procurement ordering

Bundles

No

Bundle containers are not procured (individual bundle items may be)

Items flagged "does not require procurement"

No

Per-product opt-out flag on the product record

Recurring services (subscriptions, MRR items) are not handled by procurement. These are typically managed through your PSA's native contract or agreement tools. Salesbuildr's procurement pipeline does not create contracts or agreements in any PSA.

Item receiving

As items arrive from distributors, track received quantities and serial numbers in Salesbuildr. Navigate to the purchase order and record each receipt.

The order status updates automatically: partial when some items are received, completed when all quantities match.

Receiving data syncs to your PSA where supported:

  • Autotask β€” Creates receiving records on the Autotask PO items (quantity, serial number, date)

  • HaloPSA β€” Creates stock records in Halo (quantity, cost, supplier). For products with a linked asset type, serialized asset records are created automatically.

  • ConnectWise / Standalone β€” Receiving is tracked in Salesbuildr only

What you'll continue to do separately

Procurement handles the sales-to-ordering handoff β€” from approved quote through to item receiving. Some areas remain outside Salesbuildr and are managed through your existing tools:

Area

Current state

What this means

Receiving items

Track quantities and serial numbers in Salesbuildr; use your standard PSA workflow for warehouse processing

Salesbuildr records what arrived and syncs to your PSA (Autotask and HaloPSA), but physical receiving workflows stay in your PSA

Order tracking

Check your distributor portal for shipment status

Tracking numbers are not synced automatically. TD Synnex order status is polled; other distributors are not.

Shipping options

Distributor default shipping applies

Carrier selection and expedited options are configured in the distributor portal, not in Salesbuildr

Inventory management

Manage separately in your PSA

No automatic stock picking from internal inventory when creating orders

Serial numbers

Entered manually during receiving

Serial numbers are not captured automatically from the distributor. Enter them as you receive items.

Pricing updates

Click to refresh before ordering

Distributor prices are fetched at quote time. Use "Use Latest Distributor Cost" on the pending items page to get current pricing before placing the order.

See also