Deltek Vantagepoint integration

Project-based ERP: projects, firms, contacts, employees, billing, accounting transactions

Help CentreConnectors

Overview

Deltek Vantagepoint is a project-based ERP for professional-services firms – projects (with their WBS1/WBS2/WBS3 work-breakdown hierarchy), firms, contacts, employees, marketing campaigns, billing and accounting transactions. The Automize Vantagepoint connector talks to the Vantagepoint REST API so you can automate project and contact creation, CRM sync, employee onboarding, and record lookups directly from a Cloud flow – no bot required. Works against Deltek-hosted (cloud) and on-prem Vantagepoint deployments that expose the Web API.

  • Regions: Both Deltek-hosted (cloud) tenants and on-prem installs are supported. The connector calls your own Vantagepoint web-app URL – enter it as the Base URL when you create the connection (e.g. https://vp.example.com/vpweb).
  • Plans: Any Vantagepoint deployment with the REST API enabled and an API authorization (client ID/secret) issued. The API module is available on current Vantagepoint releases.

Setting up the connection

Auth type: Bearer Token.

  1. Ask your Vantagepoint administrator to run the API Authorization Integration Utility and generate a client ID (Consumer Key) and client secret for Automize. Use a dedicated integration identity, not a personal login.
  2. Confirm the integration user has access to the hubs you want to automate (Projects, Firms, Contacts, Employees) with the right record-level rights.
  3. In Automize, open Settings → Connectors → Deltek Vantagepoint → Add connection. Enter the Base URL (web-app root, no trailing slash), the Database name, the username + password, and the API client ID + client secret.
  4. Leave 'Integrated auth' as N unless your install uses Windows-integrated authentication. Leave the pre-issued token blank – Automize mints a bearer token from your credentials automatically.
  5. Click Test. Automize exchanges your credentials for an access token at {base_url}/token and confirms the connection – a green tick means you're live.

Find your credentials at https://help.deltek.com/product/Vantagepoint/.


Rate limits

Vantagepoint does not publish a fixed public rate limit; throughput depends on your tenant sizing. Automize mints one access token per connection and caches it until shortly before expiry (re-minting automatically), so a busy flow does not hammer the /token endpoint. For large reads, page with limit/pagesize + offset/page rather than pulling whole hubs in one call.


Data model

Projects are the centre of Vantagepoint, organised as a work-breakdown
hierarchy. Firms and Contacts are the CRM side; Employees are staff.

    Firm ──< Contact
                │
    Employee    │
       │        ▼
       └──> Project (WBS1) ──> Phase (WBS2) ──> Task (WBS3)
                       │
                       └──> Activities, Billing, Accounting txns

Most records are addressed by a primary key: a project's WBS1 number, an
employee number, a contact/firm key. List endpoints accept a `fieldfilter`
(comma-separated fields to return) and a raw `filter` (filterhash WHERE
expression). The project hub additionally takes a `wbstype` to pick the
level returned (wbs1 = project, wbs2 = phase, wbs3 = task).

Available operations

33 operations available. Click any row to jump to its detail.

OperationCategoryWhat it does
Create ContactGeneralCreate a contact: POST /api/contact
Create EmployeeGeneralCreate a employee: POST /api/employee
Create FirmGeneralCreate a firm: POST /api/firm
Create ProjectGeneralCreate a project: POST /api/project
Create RecordGeneralCreate a record: POST /api/{record}
Delete ContactGeneralDelete a contact by key: DELETE /api/contact/{key}
Delete EmployeeGeneralDelete a employee by key: DELETE /api/employee/{key}
Delete FirmGeneralDelete a firm by key: DELETE /api/firm/{key}
Delete ProjectGeneralDelete a project by key: DELETE /api/project/{key}
Delete RecordGeneralDelete a record by primary key: DELETE /api/{record}/{key}
Get ActivityGeneralFetch one activity by key: GET /api/activity/{key}
Get BoilerplateGeneralFetch one boilerplate by key: GET /api/boilerplate/{key}
Get ContactGeneralFetch one contact by key: GET /api/contact/{key}
Get EmployeeGeneralFetch one employee by key: GET /api/employee/{key}
Get FirmGeneralFetch one firm by key: GET /api/firm/{key}
Get Marketing CampaignGeneralFetch one marketing campaign by key: GET /api/marketingCampaign/{key}
Get ProjectGeneralFetch one project by key: GET /api/project/{key}
Get RecordGeneralFetch one record by primary key: GET /api/{record}/{key}
Invoke Custom ProcedureGeneralRun a custom stored procedure: POST /api/utilities/invokecustom/{proc}
List ActivitiesGeneralList activities: GET /api/activity
List BoilerplatesGeneralList boilerplates: GET /api/boilerplate
List ContactsGeneralList contacts: GET /api/contact
List EmployeesGeneralList employees: GET /api/employee
List FirmsGeneralList firms: GET /api/firm
List Marketing CampaignsGeneralList marketing campaigns: GET /api/marketingCampaign
List ProjectsGeneralList projects: GET /api/project
List RecordsGeneralList records of any type: GET /api/{record} with field/filter/paging query params
Refresh TokenGeneralRe-mint the access token from the stored refresh token
Update ContactGeneralUpdate a contact: POST /api/contact
Update EmployeeGeneralUpdate a employee: POST /api/employee
Update FirmGeneralUpdate a firm: POST /api/firm
Update ProjectGeneralUpdate a project: POST /api/project
Update RecordGeneralUpdate a record: POST /api/{record} with the keyed body

Operations

Create Contact

Create a contact: POST /api/contact

ParameterRequiredTypeDescription
Record data dataYesobjectThe record body to create/update, as a JSON object of field→value.

Create Employee

Create a employee: POST /api/employee

ParameterRequiredTypeDescription
Record data dataYesobjectThe record body to create/update, as a JSON object of field→value.

Create Firm

Create a firm: POST /api/firm

ParameterRequiredTypeDescription
Record data dataYesobjectThe record body to create/update, as a JSON object of field→value.

Create Project

Create a project: POST /api/project

ParameterRequiredTypeDescription
Record data dataYesobjectThe record body to create/update, as a JSON object of field→value.

Create Record

Create a record: POST /api/{record}

ParameterRequiredTypeDescription
Record type recordYesstringAPI record/hub segment, e.g. 'project', 'contact', 'employee', 'firm'.
Record data dataYesobjectThe record body to create/update, as a JSON object of field→value.

Tips

  • `record` is the API hub segment (e.g. 'project', 'contact', 'employee', 'firm'); `data` is the field→value body.
  • Prefer the named Create actions (Create Project / Contact / Firm / Employee) for the common hubs – Create Record is the escape hatch for any other hub.

Delete Contact

Delete a contact by key: DELETE /api/contact/{key}

ParameterRequiredTypeDescription
Primary key keyYesstringThe record's primary key (e.g. a project WBS1 number or an employee number).

Delete Employee

Delete a employee by key: DELETE /api/employee/{key}

ParameterRequiredTypeDescription
Primary key keyYesstringThe record's primary key (e.g. a project WBS1 number or an employee number).

Delete Firm

Delete a firm by key: DELETE /api/firm/{key}

ParameterRequiredTypeDescription
Primary key keyYesstringThe record's primary key (e.g. a project WBS1 number or an employee number).

Delete Project

Delete a project by key: DELETE /api/project/{key}

ParameterRequiredTypeDescription
Primary key keyYesstringThe record's primary key (e.g. a project WBS1 number or an employee number).

Delete Record

Delete a record by primary key: DELETE /api/{record}/{key}

ParameterRequiredTypeDescription
Record type recordYesstringAPI record/hub segment, e.g. 'project', 'contact', 'employee', 'firm'.
Primary key keyYesstringThe record's primary key (e.g. a project WBS1 number or an employee number).

Get Activity

Fetch one activity by key: GET /api/activity/{key}

ParameterRequiredTypeDescription
Primary key keyYesstringThe record's primary key (e.g. a project WBS1 number or an employee number).
Fields fieldfilterNostringComma-separated list of fields to return (e.g. 'WBS1,Name,LongName'). Omit for all fields.

Get Boilerplate

Fetch one boilerplate by key: GET /api/boilerplate/{key}

ParameterRequiredTypeDescription
Primary key keyYesstringThe record's primary key (e.g. a project WBS1 number or an employee number).
Fields fieldfilterNostringComma-separated list of fields to return (e.g. 'WBS1,Name,LongName'). Omit for all fields.

Get Contact

Fetch one contact by key: GET /api/contact/{key}

ParameterRequiredTypeDescription
Primary key keyYesstringThe record's primary key (e.g. a project WBS1 number or an employee number).
Fields fieldfilterNostringComma-separated list of fields to return (e.g. 'WBS1,Name,LongName'). Omit for all fields.

Get Employee

Fetch one employee by key: GET /api/employee/{key}

ParameterRequiredTypeDescription
Primary key keyYesstringThe record's primary key (e.g. a project WBS1 number or an employee number).
Fields fieldfilterNostringComma-separated list of fields to return (e.g. 'WBS1,Name,LongName'). Omit for all fields.

Get Firm

Fetch one firm by key: GET /api/firm/{key}

ParameterRequiredTypeDescription
Primary key keyYesstringThe record's primary key (e.g. a project WBS1 number or an employee number).
Fields fieldfilterNostringComma-separated list of fields to return (e.g. 'WBS1,Name,LongName'). Omit for all fields.

Get Marketing Campaign

Fetch one marketing campaign by key: GET /api/marketingCampaign/{key}

ParameterRequiredTypeDescription
Primary key keyYesstringThe record's primary key (e.g. a project WBS1 number or an employee number).
Fields fieldfilterNostringComma-separated list of fields to return (e.g. 'WBS1,Name,LongName'). Omit for all fields.

Get Project

Fetch one project by key: GET /api/project/{key}

ParameterRequiredTypeDescription
Primary key keyYesstringThe record's primary key (e.g. a project WBS1 number or an employee number).
Fields fieldfilterNostringComma-separated list of fields to return (e.g. 'WBS1,Name,LongName'). Omit for all fields.

Tips

  • `key` is the project's WBS1 number, not an internal id.
  • Use `fieldfilter` to return only the fields you map downstream.

Get Record

Fetch one record by primary key: GET /api/{record}/{key}

ParameterRequiredTypeDescription
Record type recordYesstringAPI record/hub segment, e.g. 'project', 'contact', 'employee', 'firm'.
Primary key keyYesstringThe record's primary key (e.g. a project WBS1 number or an employee number).
Fields fieldfilterNostringComma-separated list of fields to return (e.g. 'WBS1,Name,LongName'). Omit for all fields.

Invoke Custom Procedure

Run a custom stored procedure: POST /api/utilities/invokecustom/{proc}

ParameterRequiredTypeDescription
Stored procedure procYesstringCustom stored-procedure name. Deltek requires the 'DeltekStoredProc_' prefix.
Parameters parametersNoobjectStored-procedure parameters as a JSON object of name→value.

Tips

  • Deltek requires the custom stored-procedure name to carry the 'DeltekStoredProc_' prefix.

List Activities

List activities: GET /api/activity

ParameterRequiredTypeDescription
Fields fieldfilterNostringComma-separated list of fields to return (e.g. 'WBS1,Name,LongName'). Omit for all fields.
Filter filterNostringRaw filterhash WHERE expression appended to the query string (e.g. "filterhash[0][Status]=A").
Limit limitNointegerMaximum number of records to return.
Page size pagesizeNointegerRecords per page (used with page/offset).
Offset offsetNointegerNumber of records to skip before returning results.
Page pageNointeger1-based page number (used with pagesize).
Order by orderNostringField(s) to sort by.
Search type searchTypeNostringServer-side search mode (Vantagepoint-specific).

List Boilerplates

List boilerplates: GET /api/boilerplate

ParameterRequiredTypeDescription
Fields fieldfilterNostringComma-separated list of fields to return (e.g. 'WBS1,Name,LongName'). Omit for all fields.
Filter filterNostringRaw filterhash WHERE expression appended to the query string (e.g. "filterhash[0][Status]=A").
Limit limitNointegerMaximum number of records to return.
Page size pagesizeNointegerRecords per page (used with page/offset).
Offset offsetNointegerNumber of records to skip before returning results.
Page pageNointeger1-based page number (used with pagesize).
Order by orderNostringField(s) to sort by.
Search type searchTypeNostringServer-side search mode (Vantagepoint-specific).

List Contacts

List contacts: GET /api/contact

ParameterRequiredTypeDescription
Fields fieldfilterNostringComma-separated list of fields to return (e.g. 'WBS1,Name,LongName'). Omit for all fields.
Filter filterNostringRaw filterhash WHERE expression appended to the query string (e.g. "filterhash[0][Status]=A").
Limit limitNointegerMaximum number of records to return.
Page size pagesizeNointegerRecords per page (used with page/offset).
Offset offsetNointegerNumber of records to skip before returning results.
Page pageNointeger1-based page number (used with pagesize).
Order by orderNostringField(s) to sort by.
Search type searchTypeNostringServer-side search mode (Vantagepoint-specific).

List Employees

List employees: GET /api/employee

ParameterRequiredTypeDescription
Fields fieldfilterNostringComma-separated list of fields to return (e.g. 'WBS1,Name,LongName'). Omit for all fields.
Filter filterNostringRaw filterhash WHERE expression appended to the query string (e.g. "filterhash[0][Status]=A").
Limit limitNointegerMaximum number of records to return.
Page size pagesizeNointegerRecords per page (used with page/offset).
Offset offsetNointegerNumber of records to skip before returning results.
Page pageNointeger1-based page number (used with pagesize).
Order by orderNostringField(s) to sort by.
Search type searchTypeNostringServer-side search mode (Vantagepoint-specific).

List Firms

List firms: GET /api/firm

ParameterRequiredTypeDescription
Fields fieldfilterNostringComma-separated list of fields to return (e.g. 'WBS1,Name,LongName'). Omit for all fields.
Filter filterNostringRaw filterhash WHERE expression appended to the query string (e.g. "filterhash[0][Status]=A").
Limit limitNointegerMaximum number of records to return.
Page size pagesizeNointegerRecords per page (used with page/offset).
Offset offsetNointegerNumber of records to skip before returning results.
Page pageNointeger1-based page number (used with pagesize).
Order by orderNostringField(s) to sort by.
Search type searchTypeNostringServer-side search mode (Vantagepoint-specific).

List Marketing Campaigns

List marketing campaigns: GET /api/marketingCampaign

ParameterRequiredTypeDescription
Fields fieldfilterNostringComma-separated list of fields to return (e.g. 'WBS1,Name,LongName'). Omit for all fields.
Filter filterNostringRaw filterhash WHERE expression appended to the query string (e.g. "filterhash[0][Status]=A").
Limit limitNointegerMaximum number of records to return.
Page size pagesizeNointegerRecords per page (used with page/offset).
Offset offsetNointegerNumber of records to skip before returning results.
Page pageNointeger1-based page number (used with pagesize).
Order by orderNostringField(s) to sort by.
Search type searchTypeNostringServer-side search mode (Vantagepoint-specific).

List Projects

List projects: GET /api/project

ParameterRequiredTypeDescription
WBS type wbstypeNoselectFor the project hub: the work-breakdown level to return (wbs1=project, wbs2=phase, wbs3=task).
Fields fieldfilterNostringComma-separated list of fields to return (e.g. 'WBS1,Name,LongName'). Omit for all fields.
Filter filterNostringRaw filterhash WHERE expression appended to the query string (e.g. "filterhash[0][Status]=A").
Limit limitNointegerMaximum number of records to return.
Page size pagesizeNointegerRecords per page (used with page/offset).
Offset offsetNointegerNumber of records to skip before returning results.
Page pageNointeger1-based page number (used with pagesize).
Order by orderNostringField(s) to sort by.
Search type searchTypeNostringServer-side search mode (Vantagepoint-specific).

Tips

  • Set `wbstype` to wbs1 for projects, wbs2 for phases, wbs3 for tasks – omitting it returns the project level.
  • Trim the payload with `fieldfilter` (e.g. 'WBS1,Name,LongName,Status') instead of pulling every column.
  • Page large result sets with `pagesize` + `page` (or `limit` + `offset`) rather than one big read.

List Records

List records of any type: GET /api/{record} with field/filter/paging query params

ParameterRequiredTypeDescription
Record type recordYesstringAPI record/hub segment, e.g. 'project', 'contact', 'employee', 'firm'.
WBS type wbstypeNoselectFor the project hub: the work-breakdown level to return (wbs1=project, wbs2=phase, wbs3=task).
Fields fieldfilterNostringComma-separated list of fields to return (e.g. 'WBS1,Name,LongName'). Omit for all fields.
Filter filterNostringRaw filterhash WHERE expression appended to the query string (e.g. "filterhash[0][Status]=A").
Limit limitNointegerMaximum number of records to return.
Page size pagesizeNointegerRecords per page (used with page/offset).
Offset offsetNointegerNumber of records to skip before returning results.
Page pageNointeger1-based page number (used with pagesize).
Order by orderNostringField(s) to sort by.
Search type searchTypeNostringServer-side search mode (Vantagepoint-specific).

Refresh Token

Re-mint the access token from the stored refresh token

No input parameters.

Tips

  • Rarely needed in Cloud flows – Automize mints and refreshes the access token automatically before each step. Use this only to force an early re-mint.

Update Contact

Update a contact: POST /api/contact

ParameterRequiredTypeDescription
Record data dataYesobjectThe record body to create/update, as a JSON object of field→value.

Update Employee

Update a employee: POST /api/employee

ParameterRequiredTypeDescription
Record data dataYesobjectThe record body to create/update, as a JSON object of field→value.

Update Firm

Update a firm: POST /api/firm

ParameterRequiredTypeDescription
Record data dataYesobjectThe record body to create/update, as a JSON object of field→value.

Update Project

Update a project: POST /api/project

ParameterRequiredTypeDescription
Record data dataYesobjectThe record body to create/update, as a JSON object of field→value.

Update Record

Update a record: POST /api/{record} with the keyed body

ParameterRequiredTypeDescription
Record type recordYesstringAPI record/hub segment, e.g. 'project', 'contact', 'employee', 'firm'.
Record data dataYesobjectThe record body to create/update, as a JSON object of field→value.

FAQ

Do I need a pre-issued access token?
No. Leave the token field blank and Automize exchanges your username, password and API client ID/secret for a short-lived bearer token at {base_url}/token, caching and refreshing it for you. Supply a token only if your firm mints one out-of-band and wants Automize to use it directly.
What is the Base URL?
The Vantagepoint web-app root with no trailing slash (for example https://vp.example.com/vpweb). Automize appends /token for sign-in and /api/... for each action.

Related connectors

See it working on your own data

Everything documented here ships with the platform – try the document tools free, or go live in 7 days.