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:

  1. Log in to Productive.io, hover over the user icon on the top right and select Settings.

    API access menu

  2. Click API Access. On the appeared page, click the Generate new token.

    Generate token

  3. Specify the new token name and select the access level.
  4. Hover over the new token name and the token value will appear.

    New token

  5. Click COPY TOKEN

    Copy token

Organization Id

You can get the Organization Id value on the API Access page.

Org Id

Creating Connection

To connect to Productive.io, paste the obtained Access Token and Organization Id to the corresponding boxes in the Connection Editor.

Productive.io 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

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, Workflows, Payments
INSERT, UPDATE Boards, Companies, CustomFieldOptions, CustomFields, Events, LostReasons, People, Subsidiaries, TaskLists, 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.

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

ArchiveCompany

Use the following command to archive a company.

call ArchiveCompany(:companyId)

RestoreCompany

Use the following command to restore the archived company.

call RestoreCompany(:companyId)

ArchiveLostReason

To archive the lost reason, use the command

call ArchiveLostReason(:lostId)

ArchiveWorkflow

To archive the workflow, use the following command

call ArchiveWorkflow(:workflowId)

RestoreWorkflow

Use the following command, to restore the workflow

call RestoreWorkflow(:workflowId)

ArchiveDealStatus

To archive the deal status, use the command

call ArchiveDealStatus(:dealStatusId)

ApproveBooking

To approve booking, use the the command

call ApproveBooking(:bookingId)

UnapproveBooking

Use the following command to unapprove booking

call UnapproveBooking(:bookingId)

ArchiveEvent

Use the following command to archive the event

ArchiveEvent(:eventId)

ApproveExpense

To approve the expence use the command

call ApproveExpense(:expenseId)

UnapproveExpense

To unapprove the expence, use the command

call UnapproveExpense(:expenseId)

ArchiveProject

Use the following command to archive the project

call ArchiveProject(:projectId)

RestoreProject

To restore the project, use the command

call RestoreProject(:projectId)

ArchiveServiceType

To archive the service type, use the command

call ArchiveServiceType(:serviceTypeId)

ArchiveSubsidiary

Use the following command to archive the subsisdiary

ArchiveSubsidiary(:subsidiaryId)

ArchiveTaskList

To archive the task list, use the command

call ArchiveTaskList(:taskListId)

RestoreTaskList

Use the following command to restore the task list.

call RestoreTaskList(:taskListId)

ArchiveBoards

To archive the board, use the command

call ArchiveBoards(:boardId)

RestoreBoards

To restore the board, use the command

RestoreBoards(:boardId)

Supported Actions

Skyvia supports all the common actions for Productive.io