Viewpoint Spectrum Authentication
To authorize access to read and write data between your product and Viewpoint Spectrum using Agave, you will need to complete the following steps:
Step 1: Whitelist Static IP Addresses
Step 1A: Hosted or Cloud Versions of Viewpoint Spectrum
Open a case with Viewpoint Customer Support to add Agave's IP address your Viewpoint Spectrum Endpoint IP whitelist:
-
Log in to your Customer Support account.
-
Select My Resources, then Submit a Case.
- Select Support, then Systems/IT.
- Under Which product are you using?, input the following and select Search Knowledge Base:
- Product: select Spectrum.
- Version: select the version of your Spectrum instance (e.g. 2022 R3).
- Module: select "SDX - Data Exchange - Spectrum".
- Brief Summary: input "API Endpoint IP Whitelist".
-
Scroll to the bottom of the page and press Continue to Case Creation.
-
Under Case Create, select a Priority. Under Description, add the following:
Hi - we are looking to whitelist our IPs for Spectrum API Endpoint connectivity with our Spectrum instance. Here are our static IPs:
- 13.58.14.240
- 18.219.160.98
- 3.143.37.24
Could you also let us know what the database hostname (
xyz-data.dexterchaney.com
), database name (Spectrum_00xxxxx
), and port are for our instance?
-
Press Submit.
-
After submitting a case, you should receive a response from Viewpoint Support within 24-48 hours confirming the connection the IP addresses have been whitelisted.
Step 1B: On-premise Versions of Viewpoint Spectrum
if you are on an on-premise version of Viewpoint Spectrum, you will need the following three static IP addresses to connect to your SQL server by adding them to your firewall for your network:
- 13.58.14.240
- 18.219.160.98
- 3.143.37.24
If you run are unable to authenticate with Agave Link even after adding the above static IP addresses, we recommend following our guide on troubleshooting common issues with on-premise connections.
Step 2: Create Info-Link Users
To enable read API requests (e.g. GET AP Invoices), you will need to create an Info-Link user, and provision them access to specific Viewpoint Spectrum tables which are grouped into "Categories".
-
Login to your Viewpoint Spectrum account.
-
Press the + at the top of the page.
-
Select System Administration, then Installation, then Info-Link.
- Continue to press "Reset" until the User ID for Info-Link is incremented at least twice. For example, if you started at "INFO0001", it should now be "INFO0003". Then press Save.
- Return to the Site Map. Select Info-link, then Table Categories Maintenance.
- Select New, and add a Table Category and Description. You can create these Categories however you see fit. If you would like to keep it simple, we recommend creating one Table Category:
Make sure you have followed step 4 above to ensure the User ID for Info-Link has been incremented at least twice before continuing.
-
Return to the Site Map. Select Info-link, then Table Security Maintenance.
-
Select New, and add the names of Tables for which you want to support read or write requests. Note, we recommend setting Read or Write Access to "9", unless you have more granular security permissions.
For reference, here are a list of frequently requested tables (note that the tab bar scrolls horizontally):
Make sure you add the JC_JOB_MASTER_MC
and VN_VENDOR_MASTER_MC
tables. These are the default tables we check to confirm the customer's Spectrum account has linked successfully.
If your customer uses Cost Centers, you will also need to add EM_COST_CENTERS_MC
.
- AP Invoices
- AP Payments
- AR Invoices
- Work Order AR Invoices
- AR Payments
- Assets (Equipment)
- Bank Accounts
- Budget Line Items
- Change Orders
- Compliances
- Cost Codes
- Cost Types
- Customers
- Departments
- Employees
- Inventory Locations
- Items
- Job Costs
- Ledger Accounts
- Prime Contracts
- Production Quantities
- Projects
- Purchase Orders
- Service Sites
- Subcontracts
- Tax Codes
- Timecard Entries
- Work Orders
- Vendors
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
VN_GL_DISTRIBUTION_HEADER_MC | All Operations | PUT / DELETE |
VN_GL_DISTRIBUTION_DETAIL_MC | All Operations | PUT / DELETE |
VN_INVOICE_APPROVAL_HDR_MC | All Operations | PUT / DELETE |
VN_INVOICE_APPROVAL_DET_MC | All Operations | PUT / DELETE |
VN_INVOICE_TRAN_HEADER_MC | All Operations | PUT / DELETE |
VN_INVOICE_TRAN_DETAIL_MC | All Operations | PUT / DELETE |
VN_CURRENT_ROUT_PROCESS_MC | DELETE | DELETE |
VN_ROUTING_HISTORY_MC | DELETE | DELETE |
PO_PURCHASE_ORDER_DETAIL_MC | All Operations | - |
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
VN_GL_DISTRIBUTION_HEADER_MC | All Operations | - |
VN_PAYMENT_HISTORY_MC | All Operations | - |
BR_BANK_ACCOUNT_MC | All Operations | - |
VN_MANUAL_CHECK_WORK_MC | All Operations | - |
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
CR_INVOICE_HEADER_MC | All Operations | DELETE |
CR_INVOICE_DETAIL_MC | All Operations | DELETE |
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
WO_OTHER_COST_HIST_DETAIL_MC | All Operations | DELETE |
WO_OTHER_COST_DETAIL_MC | All Operations | DELETE |
WO_MATERIAL_DETAIL_HIST_MC | All Operations | DELETE |
WO_MATERIAL_DETAIL_MC | All Operations | DELETE |
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
CR_CASH_RECEIPT_TRAN_MC | All Operations | - |
CR_CASH_RECEIPT_TRAN_DET_MC | All Operations | - |
CR_CASH_RECEIPT_GL_HIST_MC | All Operations | - |
CR_CASH_RECEIPT_GL_DETAIL_MC | All Operations | - |
CR_TRANSACTION_MC | All Operations | - |
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
EC_EQUIPMENT_MASTER_MC | All Operations | - |
EC_COST_CATEGORY_MC | All Operations | - |
EC_MAKE_MC | All Operations | - |
EC_MODEL_MC | All Operations | - |
EC_EQUIPMENT_STATUS_MC | All Operations | - |
EC_EQUIPMENT_TYPE_MC | All Operations | - |
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
BR_BANK_ACCOUNT_MC | All Operations | - |
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
JC_PHASE_MASTER_MC | All Operations | - |
JC_PHASE_PROJECTED_TOTAL_MC | All Operations | - |
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
CR_CHNG_REQ_CON_DET_MC | All Operations | - |
CR_CHNG_REQ_HDR_MC | All Operations | - |
CR_CHNG_REQ_REV_MC | All Operations | - |
CR_CHNG_REQ_STATUS_MC | All Operations | - |
VN_CHNG_REQ_SUB_HDR_MC | All Operations | - |
VN_CHNG_REQ_SUB_DET_MC | All Operations | - |
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
VN_VENDOR_SUB_COMPLIANCE_MC | All Operations | - |
VN_DOCUMENT_TRACK_ITEM_MC | All Operations | - |
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
JC_STD_PHASE_DESCRIPTION_MC (Company-level) | All Operations | - |
JC_PHASE_MASTER_MC (Project-level) | All Operations | - |
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
JC_COST_TYPE_MASTER_MC (Company-level) | All Operations | - |
JC_PHASE_MASTER_MC (Project-level) | All Operations | - |
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
CR_CUSTOMER_MASTER_MC | All Operations | - |
CR_TERMS_MASTER_MC | All Operations | - |
CR_CUSTOMER_CONTACTS_MC | All Operations | - |
PA_CONTACTS_MASTER | All Operations | - |
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
EM_Cost_Centers_MC | All Operations | - |
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
PR_EMPLOYEE_MASTER_MC | All Operations | - |
PR_EMPLOYEE_MASTER_1_MC | All Operations | - |
PR_EMPLOYEE_MASTER_2_MC | All Operations | - |
PR_EMPLOYEE_MASTER_3_MC | All Operations | - |
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
IM_WAREHOUSE_MASTER_MC | All Operations | - |
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
IM_ITEM_MASTER_MC | All Operations | - |
IM_CATEGORY_MASTER_MC | All Operations | - |
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
JC_TRANSACTION_HISTORY_MC | All Operations | - |
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
GL_MASTER_MC | All Operations | - |
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
CR_BID_ITEM_DES_MC | All Operations | - |
CR_CONTRACT_MASTER1_V | All Operations | - |
CR_CONTRACT_MASTER_MC | All Operations | - |
CR_DRAW_REQUEST_DETAIL_MC | All Operations | - |
CR_DRAW_UNIT_PRICE_BILL_MC | All Operations | - |
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
PR_TEMP_PRE_TC_QTY_ERROR_MC | All Operations | POST/PUT |
PR_PRE_TC_QTY_ENTRY_MC | All Operations | - |
PR_PRE_TC_QTY_HISTORY_MC | All Operations | - |
JC_QUANTITY_HISTORY_MC | All Operations | - |
JC_PHASE_MASTER_MC | All Operations | - |
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
JC_JOB_MASTER_MC | All Operations | - |
JC_JOB_CONTACT_DETAIL_MC | All Operations | - |
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
PO_PURCHASE_ORDER_HEADER_MC | All Operations | - |
PO_PURCHASE_ORDER_DETAIL_MC | All Operations | - |
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
WO_ADDRESS_MC | All Operations | - |
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
VN_SUBCONTRACT_MC | All Operations | - |
VN_SUBCONTRACT_PHASE_MC | All Operations | - |
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
CR_SALES_TAX_MASTER_MC | All Operations | - |
VN_USE_TAX_MASTER_MC | All Operations | - |
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
PR_PRE_TC_IMPORT_ERR_MC | All Operations | - |
PR_PRE_TIME_CARD_MC | All Operations | - |
PR_TIME_CARD_DETAIL_MC | All Operations | - |
PR_TIME_CARD_HISTORY_MC | All Operations | - |
PR_VOL_DEDUCT_MASTER_MC | All Operations | - |
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
WO_DISPATCH_STATUS_MC | All Operations | - |
WO_HEADER_MC | All Operations | - |
WO_PRIORITY_MC | All Operations | - |
WO_TYPE_MC | All Operations | - |
Spectrum Table | Read Access required for... | Write Access required for... |
---|---|---|
VN_VENDOR_MASTER_MC | All Operations | - |
VN_VENDOR_CONTACT_DETAIL | All Operations | - |
For example, adding the below Tables adds support for reading AP Invoice Header and Line Item Tables:
-
Select Update Database.
-
Return to the Site Map. Select Info-link, then User Security Maintenance.
-
Select New, then select a Company. Either add an existing Database user by selecting from the drop-down or type in a new Database user. If it's a new Database user, press the "Enter" (or "Return") key, and input a Password. The select the Table Category.
Make sure you have followed step 4 above to ensure the User ID for Info-Link has been incremented at least twice before continuing.
- Select Update Database.
Make sure the Link User you create is uniquely named across Viewpoint Spectrum Companies, otherwise you might run into database validation issues. If you have any concerns, feel free to contact us at api-support@agaveapi.com.
Step 3: Create Authorization ID
Configure an Authorization ID and enable required web services:
-
Login to your Viewpoint Spectrum account.
-
Press the + at the top of the page.
-
Select System Administration, then Installation, then Data Exchange.
- In Data Exchange screen, select New.
-
Input a name for the Authorization ID (e.g. "Agave").
-
Select a Company Code and Operator Code for the Authorization ID, and select
Active
for Status.
-
Add a Memo for the Authorization ID (e.g. "API access for Agave").
-
Select Build. Then select the relevant Web Services you are looking to support for the integration. For example, the below authorizes access to retrieve details about Jobs from the Job Cost module.
When creating an Authorization ID, you will need to enable the following Web Services for the corresponding Agave endpoint you plan to use:
Agave Endpoint | Service | Web Service(s) |
---|---|---|
AP Invoices | AccountsPayable | AddAPInvoice , APMultiLineInvoice |
AR Invoices | AccountsReceivable | AddARInvoice , ARMultiLineInvoice |
AR Payments | AccountsReceivable | Add_CashReceipts |
Budget Line Items | JobCost | AddPhase , GetPhase , GetPhaseEnhanced , PhaseNotes |
Change Orders | AccountsReceivable | ARChangeRequest , ARChngReqBlankBIUpdate |
Customers | AccountsReceivable | AddCustomer , CustomerNotes , CustomerBillto , CustomerShipto , GetCustomers |
Employees | Payroll | GetEmployee , EmployeeNotes |
Inventory | Inventory | AddInv_Req ,UpdateInv_SellPrice |
Prime Contracts | AccountsReceivable | ARScheduleOfValues |
Projects | JobCost | AddJob , GetJob , GetJobContact , GetJobDates , GetJobMain , UpdateJob |
Purchase Orders | PurchaseOrder | POBatch , PODetail , POHeader |
Service Sites | WorkOrder | AddWOSiteAddress |
Subcontracts | AccountsPayable | UpdateSubcontract , UpdateSubcontractPhases , SubcontractNotes |
Timecard Entries | Payroll | PreTimeCard_Batch |
Vendors | AccountsPayable | AddVendor , GetVendors , UpdateVendor , UpdateVendor_Locations , VendorNotes |
Work Orders | WorkOrder | WorkOrderHeader |
Make sure you always add the GetJobMain
Web Service under the JobCost Service. We use this endpoint to confirm the customer's Spectrum account has linked successfully.
-
Select OK.
-
In the Data Exchange Installation page, select Settings and press the checkbox for Enable Enhanced Authentication.
You do not need to enable Enhanced Authentication if you would prefer to use Basic Authentication. However, certain endpoints will not supported. For more info, see related FAQ.
Step 4: Authenticate Using Agave Link
To authenticate using Agave Link, you will need to pass the following components:
-
Authorization ID: this is the value for Authorization ID you created above.
-
Company Code: this is the Company Code associated with your Authorization ID. This can be retrieved in the top right corner of the prompt for Edit Authorization ID after
Company: {Company Code}
.
-
Domain: this is the domain for your Viewpoint Spectrum instance. It is the text that precedes "dexterchaney.com" in the UI. For example, in the URL
https://{test}.dexterchaney.com
, the domain is{test}
. -
Client ID and Client Secret: the values for these input fields can be retrieved by selecting the Authorization ID, selecting Edit, then selecting Secret Status.
Client ID and Client Secret are only required if you have Enhanced Authentication enabled. If you only have Basic Authentication enabled, you do not need to input the Client ID and Client Secret.
If you have enabled Enhanced Authentication, make sure you check the box for Allow self-rotation? This will ensure your Spectrum API access will continue to work after the expiration date.
- After pressing Next, you have the option to input Info-Link credentials. If you created an Info-Link users, press Yes.
-
Input the Database Hostname. This is the hostname of your database server. For example, if your Spectrum instance is hosted byviewpoint and you access it at https://company-abc.dexterchaney.com, enter company-abc-data.dexterchaney.com. Note that this hostname needs to be accessible to Agave's IPs (even if it is otherwise not publicly accessible).
-
Input the Database Port and Database Name. The default values are are 1433 and Spectrum respectively.
-
Input your Info-Link User and Info-Link Password. These are the credentials you created for the Info-User you added (see above).
-
Select "Yes" or "No" for the Ignore Certificate Check?. If checked, we will not validate the server certificate received by the database. Note that this will make the connection less secure, but might be necessary for certain on-prem instances of Spectrum.
-
Select Set Up Info-Link.