Sourcing and Procurement Operations integration with third-party sourcing solutions
ServiceNow can integrate with third-party sourcing solutions to automate the sourcing process within the Sourcing and Procurement Operations product. A generic, easily configurable sourcing integration framework is provided within Source-to-Pay Integration Framework to enable users to specify the business criteria for triggering an integration. This integration framework can also integrate with multiple third-party sourcing solutions based on different criteria.
Customers can either build the connector to that third-party tool or find one in the ServiceNow store.
For example, Fairmarkit, a third-party solution, built and certified their own ServiceNow application to the store, which leverages the integration framework to connect with the Fairmarkit system. For more information on this integration, visit store.
Decision configuration
The Sourcing Event Generation Rule decision table in Sourcing and Procurement Operations helps the sourcing managers and procurement teams to configure the business criteria on demand, which provides them with flexibility to decide on the types of requests that should be integrated with a third-party sourcing solution. If no decisions are configured, then sourcing requests aren’t sent to any external applications.
When a shopper requests pricing for an item that must be sourced in ShoppingHub, the following decision inputs are automatically evaluated in ServiceNow:
- Sourcing request
- Purchase line
To configure a decision:
- Navigate to .
- Select the Sourcing Event Generation Rule decision table.
- On the Decisions related list, select New.
- In the Label field, enter a name for the label.
- In the Answer field, select an answer record for the given external
application from the Third-Party Sourcing Registration table.Note:If there are no existing external application records in the Third-Party Sourcing Registration table, create one with the following:
- Third-Party Sourcing Registration Code: User-defined code to be associated to the third-party sourcing registration.
- Third-Party Sourcing Registration Name: Name of the third-party sourcing registration to be integrated with ServiceNow.
- In the Condition field, configure the conditions using the sourcing request and purchase line decision inputs.Note:To successfully send sourcing requests to the applicable external third-party application, these conditions must be evaluated to be true.
Integration tables
Integration tables are used to interact with the third-party sourcing application.
Relevant information that is required to conduct a Request for anything (RFx) in the third-party application is staged within ServiceNow and transferred through APIs to the third-party application. The following integration tables are used to achieve this:
- Sourcing Outbound Queue, which stores the sourcing requests. It captures the items that need to be sourced along with the shopper, employee, or requester's requirements from sourcing intake.
- Sourcing Line Outbound Queue, which stores the purchase lines associated with the sourcing requests. It captures the supplier details that the shopper, employee, or requester wanted to source from. Additionally, ServiceNow sends any other suppliers that supply the same product model as the item that needs to be sourced.
- Sourcing Bid Stage, which is an inbound table used as part of the RFx process. It is used to get the supplier responses to the RFx in real time from the third-party tool, back into the ServiceNow instance.
- Awarded Supplier Outbound Queue, which stores the awarded suppliers. It captures the supplier details that are awarded in ServiceNow, and shares this data with the third-party tool for them to share the award business wins or losses with the suppliers.
| Field | Field type | Description |
|---|---|---|
| City | String | Delivery city |
| Country | String | Delivery country |
| End date | Other Date | End date of the service |
| Expected delivery date | Other Date | Expected delivery date of the good |
| Grouped sourcing request number | String | ServiceNow's negotiation event record number |
| Integration status | String | Integration processing status |
| Manufacturer | String | Name of the manufacturer |
| Manufacturer part number | String | Part number of the manufacturer |
| Maximum budget | Decimal | Internal budget provided by the requester |
| Preferred currency | String | Preferred currency of transaction |
| Processing message | String | Integration processing message |
| Product category | String | |
| Product model | String | Product model name. Required for catalog items. |
| Product model short description | String | Short description of the product model |
| Product name | String | Product name. Required for off-catalog items. |
| Product type | String | Good or service |
| Purchase reason | String | Internal reason to purchase this item |
| Quantity | Integer | Quantity provided by the requester |
| Start date | Other Date | Start date of the service |
| State | String | Delivery state |
| Street | String | Delivery street |
| Sourcing request number | String | ServiceNow's sourcing request record number |
| Sourcing request short description | String | ServiceNow's sourcing request short description |
| Sourcing request status | String | Status of the requester's intake record (sourcing request) |
| Supplier responses close | Other Date | Formerly named Bids end date. This is the due date for all suppliers to provide a response to an RFx. |
| Third party tool name | String | Name of the third-party tool |
| Third party tool RFx ID | String | Event number of the third-party tool |
| Third party tool RFx ID status | String | Event status of the third-party tool |
| Third party tool RFx URL | String | Event URL of the third-party tool |
| Unit | String | Unit populated on the product details |
| UNSPSC | String | UNSPSC code |
| Zip code | String | Delivery zip code |
| Field | Field type | Description |
|---|---|---|
| Integration status | String | Integration processing status |
| Processing message | String | Integration processing message |
| Purchase line number | String | ServiceNow's purchase line record number |
| Sourcing out queue header | Reference | Reference to the sourcing outbound table |
| Sourcing request number | String | ServiceNow's sourcing request record number |
| Supplier company name | String | Supplier name. This can be requested by the requester or existing supplier providing a catalog item |
| Supplier email address | String | Email address of the supplier |
| Supplier ERP number | String | Identification number for the supplier in the ERP system |
| Supplier number | String | ServiceNow's supplier record |
| Supplier part number | String | Part number of the supplier |
| Field | Field type | Description |
|---|---|---|
| Grouped sourcing request number | String | ServiceNow's negotiation event record number |
| Integration status | String | Integration processing status |
| Manufacturer | String | Name of the manufacturer |
| Manufacturer part number | String | Part number of the manufacturer |
| Preferred currency | String | Preferred currency of transaction |
| Processing message | String | Integration processing message |
| Product category | String | |
| Product model | String | Product model name. Required for catalog items. |
| Product model short description | String | Short description of the product model |
| Product name | String | Product name. Required for off-catalog items. This is a mandatory field. |
| Product type | String | Good or service |
| Purchase line number | String | ServiceNow's purchase line record number |
| Quote number | String | Quote number back from Request for Quote (RFQ) |
| Quote price | String | Quote unit price back from RFQ |
| Shipping amount | String | Quote shipping amount from RFQ |
| Sourcing out queue ID | String | Reference to the sourcing outbound table |
| Sourcing request number | String | ServiceNow's sourcing request record number. This is a mandatory field. |
| Sourcing request short description | String | ServiceNow's sourcing request short description |
| Supplier address | String | Supplier location: Address |
| Supplier city | String | Supplier city found on the quote |
| Supplier company name | String | Supplier name. This is a mandatory field. |
| Supplier country | String | Supplier country found on the quote |
| Supplier County / District | String | Supplier location: County or district |
| Supplier delivery date | Date/Time | Supplier delivery date of the good |
| Supplier email address | String | Email address of the supplier found on the quote |
| Supplier end date | Date/Time | Supplier end date of the service |
| Supplier ERP number | String | Identification number for the supplier in the ERP system |
| Supplier fax number | String | Supplier fax number found on the quote |
| Supplier lead time (days) | String | Supplier lead time |
| Supplier notes | String | Notes from the supplier, if any |
| Supplier number | String | ServiceNow's supplier record |
| Supplier part number | String | Part number of the supplier |
| Supplier PO box number | String | Supplier PO box number found on the quote |
| Supplier primary phone number | String | Supplier primary phone number found on the quote |
| Supplier quantity | String | Supplier quantity found on the quote. This is a mandatory field. |
| Supplier region | String | Supplier location: Region |
| Supplier start date | Date/Time | Supplier start date of the service |
| Supplier State / Province | String | Supplier state found on the quote |
| Supplier street address | String | Supplier location: Street address |
| Supplier website | String | Supplier website, if provided on the quote |
| Supplier Zip / Postal code | String | Supplier zip code found on the quote |
| Third party tool name | String | |
| Third party tool RFx ID | String | Event number of the third-party tool |
| Third party tool RFx ID status | String | Event status of the third-party tool |
| Third party tool RFx URL | String | Event URL of the third-party tool |
| Unit | String | Unit populated on the product details. This is a mandatory field. |
| UNSPSC | String | UNSPSC code |
| Field | Field type | Description |
|---|---|---|
| Integration status | String | Integration processing status |
| Processing message | String | Integration processing message |
| Purchase line number | String | ServiceNow's purchase line record number |
| Purchase requisition number | String | ServiceNow's purchase requisition record number created after awarding |
| Quantity | Integer | Quantity amount awarded |
| Sourcing request number | String | ServiceNow's sourcing request record number |
| Supplier company name | String | Supplier awarded in ServiceNow |
| Supplier ERP number | String | Identification number for the supplier in the ERP system |
| Supplier number | String | ServiceNow's supplier record |
| Third party tool RFx URL | String | Event URL of the third-party tool |
Integration process
- If an integration is triggered, considering that applicable business criteria are defined in the decision table, and a request for pricing initiated by a shopper in ShoppingHub meets the criteria, a sourcing request and negotiation event is systematically created in the Sourcing and Purchasing Automation application.
- Relevant data is populated in the sourcing outbound queue and sourcing outbound line queue tables, which can then be processed by the third-party solution accordingly, to initiate an RFx in their platform. Negotiation event
is also created for the integrated sourcing request.Note:After a sourcing request is created and posted to the sourcing outbound queue table, the third-party tool that is responsible for processing that sourcing request is identified and stored in the Third party tool name field.
- A system property for the supplier responses close date (sn_spend_intg.u_bids.end.date) sets the Supplier responses close field value on the negotiation event and sourcing request to after the
negotiation event has been created, plus the number of days defined. The default value is three days. The sourcing manager can override this value manually when updating this field on the negotiation event record.Note:A schedule job can be set up in the ServiceNow instance to check if the supplier responses close date has been reached (aka today). When done, ServiceNow stops receiving bids from suppliers and moves all individual supplier negotiations to the Pricing Obtained state, and then to Requires Decision. The sourcing manager or fulfiller can then award a supplier with the business. The timestamp of the supplier responses close date is 23:59:59 of the day the bids close, in UTC date/time format. As the sourcing manager, you can also decide to close the bids now, with the date and timestamp of now, and proceed with the awarding flow without any wait time.
- If the supplier responses close date changes on the sourcing request, then this update is sent to the sourcing outbound queue. The Supplier responses close field is updated. Also, if a sourcing request
or purchase line is canceled, this status is also sent back to the sourcing request or purchase line outbound tables respectively.Note:The supplier responses close date is read-only on the sourcing request, but any change of the supplier responses close date on the negotiation event rolls up to the sourcing request.
- If there’s an error inserting new or updated records to this table, then the integration status is updated to Failed. The sourcing request at this point is in the Pending Resubmission state. The error details are captured in
the Processing Message field and the integration error task is displayed. The procurement specialist must address the error and then resubmit both the sourcing request and negotiation event by selecting
the Resubmit button.Note:Currently, errors are logged only on the Sourcing Outbound Queue table.
- Suppliers are invited to participate in a bid and engage through the third-party application platform.
- When quotes are returned, the sourcing bid stage table is populated by the third-party solution and the information is processed internally within ServiceNow using a transform map to populate the purchase lines on the sourcing request.Note:When an RFx is created or awarded in the third-party tool, shoppers and sourcing managers are notified through emails and alerts from Shopping Hub and Source-to-Pay Workspace respectively. Shoppers and sourcing managers are also notified about rejected bids, irrespective of the integration.
- If additional supplier bids are returned from the third-party solution, an existing logic in ServiceNow determines if a new supplier, supplier product record, or both must be created.
- After awarding is done in ServiceNow, that information is sent back to the third party using the award outbound table. Awarding can also be done in the third-party tool, in which case the data is received by ServiceNow.
For information on the sourcing request flow, see Sourcing request. For more information, see Compare quotes and select a supplier.