Skip to main content
Operand is a Brazilian project-management and financial platform for creative and marketing agencies. It organizes projects, jobs and tasks, keeps client and supplier registrations, and runs a financial module (bills, boletos, invoices, cost centers). Nekt connects to Operand’s Public API to extract this data.

Configuring Operand as a Source

In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Operand option from the list of connectors. Click Next and you’ll be prompted to add your access.

1. Add account access

You’ll need an Operand API token. It is generated inside Operand by the account owner (root) or an administrator, under Avatar > Configurações > Módulos e Funções > API Operand > Gerar token. The API Operand module must be contracted for the option to appear.
Each Operand account has only one active token at a time. Generating a new token invalidates the previous one, which will break any integration still using it, so reuse the same token across your integrations.
The following configurations are available:
  • API Token: The token generated in Operand. Used to sign in and read your account’s data.
  • Start Date: (Optional) The earliest creation date to sync for the incremental streams (projects and jobs). When left empty, the first sync fetches all available history.
  • Lookback Window (days): (Default: 90 days) Number of days re-scanned before the last sync point on each incremental run, so records created shortly before it are not missed. Operand only lets you filter projects and jobs by their creation date, so this window is also what lets recently created records be picked up again as they change.
Once you’re done, click Next.

2. Select streams

Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis. You can select entire groups of streams or pick specific ones.
Tip: The stream can be found more easily by typing its name.
Select the streams and click Next.

3. Configure data streams

Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.
  • Layer: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
  • Folder: a folder can be created inside the selected layer to group all tables being created from this new data source.
  • Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix to all tables at once and make this process faster!
  • Sync Type: you can choose between INCREMENTAL and FULL_TABLE.
    • Incremental: every time the extraction happens, we’ll get only the new data - which is good if, for example, you want to keep every record ever fetched.
    • Full table: every time the extraction happens, we’ll get the current state of the data - which is good if, for example, you don’t want to have deleted data in your catalog.
Once you are done configuring, click Next.

4. Configure data source

Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times). Optionally, you can define some additional settings:
  • Configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource here.
  • Determine when to execute an Additional Full Sync. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while.
Once you are ready, click Next to finalize the setup.

5. Check your new source

You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.
For you to be able to see it on your Catalog, you need at least one successful source run.

Streams and Fields

Available streams

The table below lists every stream, its slug (the exact identifier to pass when creating the source via API) and a short description.

Fields by stream

Below you’ll find the available data streams from Operand and their main fields. Nested objects and arrays of objects (for example contacts, locality, and the joined objects on financial reports) are delivered as JSON strings.
Projects registered in Operand. Replicated incrementally by createdAt.Key Fields:
  • id - Unique identifier of the project
  • title - Title of the project
  • situation - Lifecycle situation (active, archived)
  • personId / personName - Associated client/person
  • statusId - Status of the project
  • budget - Estimated budget (decimal string)
  • createdAt - Creation timestamp (replication key)
  • updatedAt - Last update timestamp
Other Fields:
  • requesterId, responsibleId, userUpdateSituationId - Related users
  • involvedIds, involvedProjectIds, favoriteForUserIds - Related IDs
  • documentsSituation, counters - Status summary and counts (JSON objects)
  • concludedAt, providedAt, maxDeadline - Related dates
  • totalEstimated, totalRealized, estimatedCost, filesCount, isPrivate
Jobs registered in Operand. Replicated incrementally by createdAt.Key Fields:
  • id - Unique identifier of the job
  • title - Title of the job
  • situation - Lifecycle situation (active, archived)
  • projectId / projectTitle - Parent project
  • clientId / clientName - Client the job belongs to
  • statusId / statusName - Status of the job
  • createdAt - Creation timestamp (replication key)
  • updatedAt - Last update timestamp
Other Fields:
  • responsibleId, jobResponsibleId, requesterId - Related users
  • openedTasks, closedTasks, canceledTasks - Task counters
  • estimated, estimatedTime, worked, workedTime - Time tracking
  • deadline, initialDate - Related dates
  • jsonInvolvedIds - Involved users (JSON array)
  • isDeleted, isShared, hasActiveApproval, isSubtaskBlocked
Tasks and subtasks belonging to each job.Key Fields:
  • id - Identifier of the job the task belongs to
  • subtaskId - Unique identifier of the task/subtask
  • subtaskTitle - Title of the task
  • situation - Lifecycle situation
  • responsibleId / responsibleName - User responsible for the task
  • statusId / statusName - Status of the task
  • createdAt / updatedAt - Creation and last update timestamps
Other Fields:
  • initialDate, deadline, finishedAt - Related dates
  • completed, orderId, allowDelay, workedTime
  • blocking, dependents - Dependency lists (JSON arrays)
Client registrations.Key Fields:
  • idClient - Unique identifier of the client
  • person - Trade/display name
  • nationalDocument / typeNationalDocument - Document number and type (cpf/cnpj)
  • company - Whether the client is a company (PJ)
  • situation - Lifecycle situation (active, disabled)
  • email, phone, phone2 - Contact details
  • contacts - List of contacts (JSON array)
  • locality - Full address breakdown (JSON object)
  • totalJobs, lateJobs - Job counters
Media vehicle registrations.Key Fields:
  • idPerson - Unique identifier of the vehicle registration
  • person - Trade/display name
  • name, shortName, network - Vehicle identification
  • situation - Lifecycle situation
  • contacts / locality - Contact and address (JSON)
  • nationalDocument, email, phone, phone2
Service provider registrations.Key Fields:
  • idPerson - Unique identifier of the provider registration
  • person - Trade/display name
  • nationalDocument / typeNationalDocument - Document number and type
  • company - Whether the provider is a company (PJ)
  • situation - Lifecycle situation
  • contacts / locality - Contact and address (JSON)
Supplier registrations.Key Fields:
  • idPerson - Unique identifier of the supplier registration
  • person - Trade/display name
  • nationalDocument / typeNationalDocument - Document number and type
  • company - Whether the supplier is a company (PJ)
  • situation - Lifecycle situation
  • contacts / locality - Contact and address (JSON)
Employee (collaborator) registrations.Key Fields:
  • idPerson - Unique identifier of the employee registration
  • person - Name of the employee
  • occupation - Job title/occupation
  • nationalDocument, stateDocument - Document numbers
  • email, phone, phone2 - Contact details
  • hiredDate, firedDate, birthdayDate - Related dates
  • grossSalary, hourlyRate - Compensation
  • benefits - Benefits (JSON array)
Departments configured in the account.Key Fields:
  • departmentId - Unique identifier of the department
  • title - Name of the department
  • situation - Lifecycle situation
  • createdDate / updatedDate - Creation and last update timestamps
Financial bills/invoices (Faturas).Key Fields:
  • finBillId - Unique identifier of the bill
  • billTitle - Title of the document
  • billType - Party type (client, supplier, transfer, …)
  • situation / statusId - Situation and status
  • value, discountValue, increaseValue, totalValue - Amounts
  • dueDate, paymentDate, accrualDate, billingDate - Related dates
  • createdDate / updatedDate - Creation and last update timestamps
References:
  • finAccountId, finCategoryId, finCostCenterId, finPaymentMethodId
  • finBillGroupId, entPersonId, referrerClientId, userId
  • attachments, relatedDocuments - JSON arrays
Financial ledger entries (Lançamentos). Each record is a denormalized statement joining a bill with its related records. Joined parts are delivered as JSON strings.Fields:
  • order - Ordering/reference date of the entry
  • finBills - Bills that make up the entry (JSON array)
  • billets, finAccounts, finCategories, finCostCenters - Joined records (JSON)
  • finNfe, finPaymentMethods, finReconciliation, finStatus - Joined records (JSON)
  • persons, referrerClient, relatedDocument, vehicleDetails - Joined records (JSON)
Boletos (bank slips).Key Fields:
  • billetId - Identifier of the boleto in Operand
  • billet - Identifier on the external platform
  • finBillId - Bill the boleto belongs to
  • billetValue - Value of the boleto
  • situation - Situation (active, settled, removed, …)
  • url - URL to access the boleto
  • fineForDelay, latePaymentInterest, instructions, description
  • createdDate / updatedDate - Creation and last update timestamps
Service invoices (Notas Fiscais).Key Fields:
  • nfeId - Identifier of the nota fiscal in Operand
  • number - Invoice number at the city hall
  • situation - Situation (waiting, issued, canceling)
  • value, discount - Amounts
  • iss, ir, inss, pis, cofins, csll - Tax fields
  • companyNationalDocument, nationalDocument - Documents
  • issuedOn - Issue timestamp
  • urlPdf, urlXml - Document URLs
Financial categories configuration.Fields:
  • finCategoryId - Unique identifier of the category
  • categoryName - Name of the category
  • path - Hierarchical path (e.g. /1/2/)
  • situation - Lifecycle situation
Cost centers configuration.Fields:
  • finCostCenterId - Unique identifier of the cost center
  • costCenter - Name of the cost center
  • situation - Lifecycle situation
Bank accounts configuration.Fields:
  • finAccountId - Unique identifier of the bank account
  • accountName - Display name
  • bankCode, bankName - Bank identification
  • agency, account, operation, station - Account identification
  • situation - Lifecycle situation
Payment methods configuration.Fields:
  • finPaymentMethodId - Unique identifier of the payment method
  • paymentMethod - Name of the payment method
  • situation - Lifecycle situation
Invoice/document statuses configuration.Fields:
  • statusId - Unique identifier of the status
  • statusName - Name of the status
  • color - Hex color
  • order - Display order
  • typeDoc - Document type the status applies to
  • situation - Lifecycle situation