Configuring Faceponto as a Source
In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Faceponto option from the list of connectors. Click Next and you’ll be prompted to add your access.1. Add account access
You’ll need the email and password of a Faceponto user for this connection. These are the same credentials used to sign in to Faceponto itself, and the data Nekt can extract is limited to what that user is allowed to see, so we recommend using an account with administrative access. The following configurations are available:- Email: Email address used to sign in to Faceponto.
- Password: Password for the Faceponto account.
- Start Date: The earliest date from which punches and absences will be synced. Defaults to 90 days ago when left empty.
- Lookback Days: (Default: 30) How many days before the last synced date to re-read on each run. Absences are dated by the day the employee was absent, but are often entered into Faceponto weeks later. Since Faceponto offers no filter on the entry date, re-reading a trailing window is the only way to capture them.
- Requests Per Minute: (Default: 9) How many requests per minute the connector is allowed to send. Only raise this if Faceponto has lifted the rate limit for your account.
2. Select streams
Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis.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.
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.
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.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.Photos and attachments (
foto, anexo) are returned by Faceponto as temporary links that expire within the hour. The connector stores the stable part of the link, which identifies the file but cannot be opened directly.Fields by stream
Below you’ll find all available data streams from Faceponto and their corresponding fields:Colaboradores
Colaboradores
Employees registered in the account. Synced in full on every run.Key Fields:
colaborador_id- Unique identifier of the employee in Facepontonome- Full name of the employeecpf- Employee’s CPF (Brazilian taxpayer number)matricula- Payroll registration number identifying the employee
nome_funcao- Name of the job role the employee performsnomecontratante- Name of the contracting entity or work site the employee is assigned tonome_superlocacao- Name of the parent location grouping the employee’s work sitenome_sublocacao- Name of the sub-location within the employee’s work site
carga_id- Identifier of the working-hours load (carga horária) assigned to the employeefolga- Number of rest days in the employee’s work cyclefoto- URL of the employee’s reference photo used for facial recognitionisAssinatura- Whether the employee has a registered handwritten signatureisTermo- Whether the employee has accepted the system’s terms of use
Escalas
Escalas
Work schedules (shift patterns) defined in the account. Synced in full on every run.Key Fields:
escala_id- Unique identifier of the work schedule, as a UUIDnome- Name of the work schedule, such as “Escala 12x36 (Entrada 06:00)”tipo- Numeric code for the schedule type (weekly, special or on-call shift)qt_colaboradores- Number of employees currently assigned to this schedule
Escala Horários
Escala Horários
The day-by-day expected working hours that make up each work schedule. One row per schedule and day.Key Fields:
escala_id- Identifier of the work schedule this day belongs to, matchingescalas.escala_idrel_escala_horario_id- Unique identifier of the link between the schedule and this day’s hourshorario_padrao_id- Identifier of the standard hours pattern applied on this day, as a UUIDdia- Day the hours apply tohorario- Comma-separated clock times the employee is expected to punch on this day, such as “06:00,12:00,13:00,18:00”. Empty on a rest day
escala_nome- Name of the work schedule this day belongs toescala_tipo- Numeric code for the schedule typeescala_tipo_string- Human-readable schedule type, such as “Semanal”, “Especial” or “Plantão”escala_tolerancia- Tolerance in minutes allowed around the expected punch times before a punch counts as late or earlyescala_is_show_folha- Whether rest days are shown on the timesheet for this schedule
Justificativas
Justificativas
Catalogue of reasons an absence can be justified with. A small lookup table that gives
faltas.justificativa_id its meaning.Key Fields:justificativa_id- Unique identifier of the justification typenome_justificativa- Human-readable name of the justification, such as “Atestado Médico” or “Licença de Paternidade”
Faltas
Faltas
Absences registered against employees. Supports incremental sync on
data_falta.Key Fields:falta_id- Unique identifier of the absence recorddata_falta- Day the employee was absent. Used as the incremental replication key. This is the date of the absence itself, not the date the record was createdcolaborador_id- Identifier of the absent employee
nome- Full name of the employeecpf- Employee’s CPF (Brazilian taxpayer number)matricula- Payroll registration number of the employeenome_funcao- Name of the job role the employee performsnomecontratante- Name of the contracting entity or work site the employee is assigned tofoto- URL of the employee’s reference photo
justificativa_id- Identifier of the justification given, matchingjustificativas.justificativa_idisJustificada- Whether the absence was justified. Unjustified absences are always full-dayisAnexo- Whether a supporting document, such as a medical certificate, is attachedisAssinatura- Whether the absence record carries the employee’s signatureisTermo- Whether the employee accepted the terms attached to the absence
Falta Detalhes
Falta Detalhes
Full detail for each absence listed in the
faltas stream. Requires the faltas stream to be selected as well.Key Fields:falta_id- Unique identifier of the absence recorddata_falta- Day the employee was absentdata_cadastro- Moment the absence record was created in Faceponto, often days after the absence itselfativo- Whether the absence record is still active. Deactivated records remain readable
colaborador_id- Identifier of the absent employeecolaborador_nome- Full name of the absent employeecolaborador_cpf- Absent employee’s CPF (Brazilian taxpayer number)colaborador_matricula- Payroll registration number of the absent employeecolaborador_funcao_nome- Name of the job role the absent employee performscolaborador_locacao_nome- Name of the work location the absent employee is assigned to
isDiaInteiro- Whether the absence covers the entire working day. When false,duracaoholds the partial lengthisJustificada- Whether the absence was justifiedisDescontar- Whether the absence should be deducted from the employee’s payduracao- Length of a partial absence, as HH:mmjustificativa_id- Identifier of the justification given, matchingjustificativas.justificativa_idnome_justificativa- Name of the justification given for the absencedescricao- Free-text description entered alongside the absence
cid- ICD code (Classificação Internacional de Doenças) from the medical certificatecrm- Registration number of the doctor who issued the medical certificateespecialidade_id- Identifier of the medical speciality recorded for the absenceespecialidade_medica- Name of the medical speciality recorded for the absence
anexo- URL of the document attached to the absenceobservacao- Note attached to the day of the absence, as a JSON objectrastreio- Audit trail recording who created and last changed the absence and when, as a JSON object
Pontos
Pontos
Individual clock-in and clock-out punches. Supports incremental sync on
data_ponto. This is by far the highest-volume stream.Key Fields:ponto_id- Unique identifier of the punch recorddata_ponto- Moment the punch was registered. Used as the incremental replication keytipo- Direction of the punch: “Entrada” for a clock-in, “Saída” for a clock-outcolaborador_id- Identifier of the employee who registered the punch
nome- Full name of the employeecpf- Employee’s CPF (Brazilian taxpayer number)matricula- Payroll registration number of the employeenomecontratante- Name of the contracting entity or work site the employee is assigned to
latitude- Latitude captured by the device when the punch was registered, when location was availablelongitude- Longitude captured by the device when the punch was registered, when location was availablefoto- URL of the photo taken at the moment of the punch