Productive.io
Productive.io is a tool designed to help agencies with sales, budgeting, project management, resource management, reporting and billing.
Data integration: Skyvia supports importing data to and from Productive.io, exporting Productive.io data to CSV files, replicating Productive.io data to relational databases, and synchronizing Productive.io data with other cloud apps and relational databases.
Backup: Skyvia Backup does not support Productive.io.
Query: Skyvia Query supports Productive.io.
Establishing Connection
To create a connection to Productive.io, specify the Access Token and Organization Id.
Getting Credentials
Access Token
To locate the access token, perform the following actions:
-
Log in to Productive.io, hover over the user icon on the top right and select Settings.
-
Click API Access. On the appeared page, click the Generate new token.
- Specify the new token name and select the access level.
-
Hover over the new token name and the token value will appear.
-
Click COPY TOKEN
Organization Id
You can get the Organization Id value on the API Access page.
Creating Connection
To connect to Productive.io, paste the obtained Access Token and Organization Id to the corresponding boxes in the Connection Editor.
Additional Connection Parameters
Use Custom Fields
Enables working with custom fields of the Bookings, Budgets, Companies, Deals, Expenses, Invoices, People, Projects, Tasks objects.
Connector Specifics
Import Specifics
When you import data to the object contatinng the fields *Type and *Id together, you must map either both these fields or none of them for successful import. For example, the Bookings object contains the EventType and EventId. You must map either both EventType and EventId fields or none of them.
Object Peculiarities
Comments
When you insert a record to the Comments object, it is present in the Comments object, but it doesn’t contain the link to the parent object, which the comment is created for. Thus, this record is not available when you select all the records. You can get the Comment record only by specifying its Id.
Reports_FinancialItem
By default, data is grouped by the financial_item metric. You can change this behaviour by changing the Group field to one of the following values: person, service, service_type, budget, project, company, pricing_type, project_type, future, organization, financial_item. To group data by multiple metrics, specify the metrics separated by commas. Available date periods for grouping are year, quarter, month, week and day.
You can filter these reports by using Date field. For example, you can get data for the period from 02.09.2024 to 30.10.2024 with grouping by each month separately by using filters like this:
1
2
3
4
SELECT t.*
FROM Reports_FinancialItem AS t
WHERE ((t."Date" < '2024-10-31' AND t."Date" > '2024-09-01')
AND t."Group" = 'service_type,date:month')
Reports_Time
By default, data is grouped by the person metric. You can change this behaviour by changing the Group field to one of the following values: service, service_type, budget, project, company, event, future, organization, subsidiary, manager, person. To group data by multiple metrics, specify the metrics separated by commas. Available date periods for grouping are year, quarter, month, week and day. You can filter these reports by using Date field.
Custom Fields
The following objects can have custom fields: Bookings, Budgets, Companies, Deals, Expenses, Invoices, People, Projects, Tasks.
Productive.io supports the custom fields of the following types:
Productive.io type | DbType |
---|---|
Text | String |
Multiselect | String |
Dropdown | String |
Person | String |
Date | Date |
Number | Decimal |
Person | Field which stores the ID referring to the People object |
Filtering Specifics
Productive.io supports the following native filters:
Object | Operator | Field |
---|---|---|
Activities | = |
TaskId, DealId, InvoiceId, CompanyId, PersonId |
Comments | = |
DiscussionId |
Companies | = |
Status |
Bookings | = |
EventId, PersonId |
Deals | = |
SalesStatusId, ProjectId, CompanyId, ResponsibleId, SubsidiaryId |
Payments | = |
ExternalId, InvoiceId |
Projects | = |
ProjectTypeId |
TaskLists | = |
ProjectId, BoardId |
Workflows | = |
Name |
WorkflowStatuses | = |
Name, CategoryId, WorkflowId |
Boards | = |
ProjectId |
TimeEntries | = |
ServiceId, PersonId |
>= , <= |
Date | |
TaxRates | = |
SubsidiaryId, Status |
Use these filters to improve performance and save API calls. You can use filters with other fields or operators, but it may increase API call usage.
Custom fields support the following filters:
Field | Operator |
---|---|
Number, Date | = , > , < , >= , <= |
Other fields | = |
Multiselect | Not supported |
Incremental Replication and Synchronization
Skyvia supports Replication with Incremental Updates for the Activities, Bookings, Budgets, Comments, Companies, Deals, Expenses, Invoices, People, Projects, Tasks objects. Skyvia tracks only the new records for the Activities, Companies, Deals, Expenses, People, Projects objects.
Skyvia supports Synchronization for the objects Invoices, Bookings, and Tasks objects.
DML Operations Support
Operation | Object |
---|---|
INSERT, UPDATE, DELETE | Bookings, Budgets, Comments, Deals, DealStatuses, Expenses, Invoices, LineItems, Projects, Services, ServiceTypes, Tasks, TimeEntries, Workflows, Payments |
INSERT, UPDATE | Boards, Companies, CustomFieldOptions, CustomFields, Events, LostReasons, People, Subsidiaries, TaskLists, TaxRates, WorkflowStatuses |
UPDATE, DELETE | Organizations |
UPDATE | Users |
Stored Procedures
Skyvia represents part of the supported Productive.io features as stored procedures. You can call a stored procedure, for example, as a text of the command in the ExecuteCommand action in a Target component of a Data Flow or in Query.
ArchiveBoards
To archive a board, use the following command:
call ArchiveBoards(:boardId)
RestoreBoards
To restore a board, use the following command:
call RestoreBoards(:boardId)
ApproveBooking
To approve a booking, use the following command:
call ApproveBooking(:bookingId)
UnapproveBooking
To unapprove a booking, use the following command:
call UnapproveBooking(:bookingId)
ArchiveCompany
To archive a company, use the following command:
call ArchiveCompany(:companyId)
RestoreCompany
To restore a company, use the following command:
call RestoreCompany(:companyId)
ArchiveDealStatus
To archive a deal status, use the following command:
call ArchiveDealStatus(:dealStatusId)
ArchiveEvent
To archive an event, use the following command:
call ArchiveEvent(:eventId)
ApproveExpense
To approve an expense, use the following command:
call ApproveExpense(:expenseId)
UnapproveExpense
To unapprove an expense, use the following command:
call UnapproveExpense(:expenseId)
ArchiveLostReason
To archive a lost reason, use the following command:
call ArchiveLostReason(:lostId)
ArchiveProject
To archive a project, use the following command:
call ArchiveProject(:projectId)
RestoreProject
To restore a project, use the following command:
call RestoreProject(:projectId)
ArchiveServiceType
To archive a service type, use the following command:
call ArchiveServiceType(:serviceTypeId)
ArchiveSubsidiary
To archive a subsidiary, use the following command:
call ArchiveSubsidiary(:subsidiaryId)
ArchiveTaskList
To archive a task list, use the following command:
call ArchiveTaskList(:taskListId)
RestoreTaskList
To restore a task list, use the following command:
call RestoreTaskList(:taskListId)
ArchiveTaxRate
To archive a tax rate, use the following command:
call ArchiveTaxRate(:Id)
RestoreTaxRate
To restore a tax rate, use the following command:
call RestoreTaxRate(:Id)
ApproveTimeEntry
To approve a time entry, use the following command:
call ApproveTimeEntry(:timeEntryId)
UnapproveTimeEntry
To unapprove a time entry, use the following command:
call UnapproveTimeEntry(:timeEntryId)
StartTimeEntry
To start a time entry, use the following command:
call StartTimeEntry(:timeEntryId)
StopTimeEntry
To stop a time entry, use the following command:
call StopTimeEntry(:timeEntryId)
ArchiveWorkflow
To archive a workflow, use the following command:
call ArchiveWorkflow(:workflowId)
RestoreWorkflow
To restore a workflow, use the following command:
call RestoreWorkflow(:workflowId)
DeleteWorkflowStatus
Use the following command, to delete the record from the WorkflowStatuses:
call DeleteWorkflowStatus(:id,:type,:targetid)
PARAMETER NAME | DESCRIPTION |
---|---|
Id | The identifier of the deleted record |
Type | Required constant workflow_statuses |
TargetId | The Id of the workflow status where the tasks from the deleted workflow status will be moved |
Supported Actions
Skyvia supports all the common actions for Productive.io