The purpose of this integration is to develop an accounting integration between the Tai TMS & Truckman. Tai will build multiple triggers within the TMS that will send over accounting data to Truckman. Truckman will send certain data pieces to the Tai
Truckman to Tai
- Customer Data – Tai will pull Customer Data from Truckman. This data will consist of all the information necessary to build a Customer Profile within the Tai TMS. Some of the key fields are:
- Credit Limits – Truckman will send over the credit limit amount and the open balance.
- Locations/Location codes – Locations shouldn’t have to be created in TM3 first, however, TM3 has to have a location code for every origin/destination so when Tai submits a shipment, it builds up a code to make it unique, and checks to see if that code exists. If it does, Tai uses it, if it doesn’t then Tai creates it and then submits it.
- Invoice Codes
- Vendor Data – Tai will pull Vendor Data from Truckman. This data will consist of all the information necessary to build a Vendor Profile within the TMS. Some of the key fields are:
- Equipment Codes
- Driver Contacts
- Factoring Companies
Tai to Truckman
- Shipment Data – On delivery of a shipment in the TMS, Tai will push Truckman shipment data. This data will be used to create accruals in Truckman. The shipment data will consist of the following.
- Customer Name
- Vendor Name
- Cost information
- Sell information
- Customer Ref # in TM3 pulls from Customer PO field in Tai
- This was set up this way because that is what pulls on the invoice to the customer for payment identification on the customer's side.
- Vendor Invoicing Data – Once a vendor bill is approved for payment within Tai, Tai will then push to Truckman the vendor bill detail. The bill detail will consist of the following.
- Vendor Name
- Cost information
- Carrier Inv field pulls in TM3 after the invoice (carrier bill) is approved through HubTran and a carrier invoice number is in that field.
- In addition to matching on customer reference number, match on first ten characters of the name, zip code, and no reference number existing, to hopefully prevent more duplicates.
- Make sure that we are only syncing for active customers.
- Add a blanket staff member for new organizations named Default Staff
Shipments - We want to add better management for shipments that errored when sent over to Truckman
- Add an activity log message for when a shipment fails to be sent over to Truckman when it should, with a clear message as to what went wrong (ex: customer reference number not found or login failed).
- Create an exception for 'Accounting Sync Exception'.
- Add the 'Accounting Sync Exception' to the Truckload dashboard, which will only display if any exist and then link over to the Truckload Search page with the exception selected.
- Add a button on the Shipment Domestic page, which will manually trigger the Truckman sync. If an invoice number does not exist on the shipment, this will set invoicing status to created. If an invoice number does exist on the shipment, this will set billing status to created and shipment status to complete. Add an activity log stating that it was manually triggered. TMS Site Admin is required for users to see this option.
- When a shipment is successfully sent over, clear the Accounting Sync Exception if it exists
(Part 1) Customer Sync
Purpose - to load the Credit Limits from Truckman
- This works as a Background Job, which runs every 5 min
- To get this functioning, any branch(office) needs to have the Truckman Branch ID as the Reference Number on the Organization in order to retrieve the Customers.
- This Organization will also need to be added as a Linked Organization on the Integration
- Customers need to add the Reference Numbers(Truckman's CustomerCode) for each of their customers which we match
- we tag in the Customer ID using the | if not included we can match over the reference number as well
- If there’s no pipeline id number then they either don’t exist in truckman or haven’t synced over
- We pull the Customer ID and add to the Pipeline to the Reference Number
- Information pulled from Customer Sync includes: Address Info, Billing Info, Terms, Fax, Email(Invoice Email), Phone, Credit Limit, (Credit Limit and Available Credit goes into the system)
- We set the Credit Limit on the Organizations Profile Total Due would be Credit Limit - Available Credit = Total Due
- We’re manipulating the single Invoice that manages the credit to adjust the Total Due based on the Available Credit
- If Customers are under two different offices we split the Credit Limit and Available Credit to both customers.
- Adds the Last CustomerSyncDate on the Integration Source which allows us to track if Truckman is down etc.
(Part 2) Vendor Sync
- This will pull all carriers for Truckman and apply the Remit to Addresses
- CarrierID is the broker's ID in Truckman.
- Update or Create
- We only adjust the Remit To
- We will create the Broker Carrier
- Default Shipment Type of Truckload
- Add the Driver ID BrokerCarrierID Parameter Type 3 to sync over to Truckman
- We will create the Broker Carrier
- Shipments not an available ID on the UI
(Part 3) Shipment Sync
- Linked Orgs has to be somewhere in the hierarchy of the shipment
- Syncs, when a shipment goes to Delivered
- Effect on Truckman
- Truckman Load sent over on Shipments Delivered.
- TMS sends over Address Info, ShipmentID to map to Truckman’s Internal Reference Number
- Initial Sync sends over the Sells only from our TMS (Invoice Info)
- The Second Sync we send over the Buy from our TMS
- We fill in Driver Truck and the Buy on Truckman
- Truckman's Carrier Invoice Number will be filled with our Pro Number or ShipmentId if Pro Number doesn’t exist
- Truckman's Customer Reference Number will be filled with our PO Number
- Truckman’s PO# will be filled with our Shipper Reference Number
- Truckman’s Comment Section will be filled with our Container Number, Customer Reference number, Customer Reference Number 2
- Effect on TMS
- The Initial Sync Invoicing Status changed to created (NO INVOICE CREATED)
- Invoice Number is what they use to track all Truckman Loads. The Invoice Number will be the Truckman Load ID
- The Second Sync will mark our Billing Status to created (NO BILL CREATED)
- Sends all the documentation to Truckman
- We mark the shipment as Complete after
When something fails to sync over to Truckman, the system will generate an accounting sync exception alert, and you will be able to find these shipments under the truckload operations dashboard. If no loads exist with this alert, it will be hidden.
You will also find why the shipment did not sync to Truckman under the Activity Log.
We added a Truckman Manual Trigger button under the Accounting tab in the shipment summary to manually attempt to resync shipments to Truckman whenever there was a sync exception.
The staff member must have one of the following permissions to have the ability to resync shipments to Truckman TMS Site Admin and Accounting AP Approve Bills.
- If an Invoice Number doesn't exist the Initial Sync will trigger
- If the Invoice Number exists then the Second Sync will trigger
Approve Bills feature has functionality in place that safeguards the bill from being created in the event that the sync to Truckman fails. In the case where a Truckman sync fails, the AccountingSyncException Alert will be tagged on the shipment, the Dashboard counter will increase, and the bill will not be created in TMS. The Activity Log will indicate what the error was.
Sync on Delivery and POD Workflow
This is an alternative workflow that anybody using Truckman as their accounting system can select. The difference is that with the first one, two syncs occur at different times, one when the shipment hits the delivered status and another when the bill is approved. With Sync on Delivery and POD, the Sync to Truckman will occur twice in one function call on shipment delivery and if the POD has been attached.
To activate this workflow, you need to add an Integration Source Parameter called syncOnDeliveryAndPod which will have to = True in the source settings in the integration source.
The Source Parameter can be defaulted to false, or the current workflow will remain if the parameter does not exist.