Skip to main content
Ahgora (TOTVS RH Ponto Eletrônico) is a Brazilian workforce management platform for time and attendance, covering electronic time punches, work schedules, shifts, and employee leaves. This connector extracts your data through the official Ahgora API, landing employees, time punches, leaves, schedules, and shifts in your Catalog.

Configuring Ahgora as a Source

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

1. Add account access

Ahgora uses HTTP Basic authentication with a dedicated API integration user. This user must be linked to a Time Automation profile (Perfil de Automação de Ponto) with the API access permissions enabled — such as API Integração Batidas and the read permissions for the data you want to extract (employees, punches, leaves, schedules, and shifts). If you don’t have an integration user yet, ask your Ahgora administrator or TOTVS/Ahgora support to provision one. Back in Nekt, provide:
  • Username: the username of the Ahgora API integration user.
  • Password: the password of the Ahgora API integration user.
Optionally, under advanced settings you can define:
  • Start Date: the earliest date to sync punches and leaves from. When not set, it defaults to January 1st, 2024.
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). 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

Fields holding nested structures (for example financial_data and job_title_history on employees) are delivered as JSON strings. Parse them downstream (for example in a Query) when you need the individual attributes.

Fields by stream

Below you’ll find all available data streams from Ahgora and their corresponding fields:
All employees registered in the Ahgora account. Sync: Full table. Primary key: register.
  • register - Employee’s unique registration number (matrícula)
  • name - Full name of the employee
  • pis - PIS number
  • cpf - CPF number
  • rg - RG (identity document) number
  • email - Email address
  • phone_number - Phone number
  • gender - Gender
  • birth_date - Birth date
  • hire_date - Hire date
  • termination_date - Termination date, if applicable
  • location - Location path within the company structure
  • work_permit - Work permit (CTPS)
  • job_title - Current job title
  • department - Department
  • cost_center - Cost center
  • work_regime - Work regime
  • internal_code - Internal code in the company’s systems
  • leadership_register - Registration number of the direct leader
  • leadership_name - Name of the direct leader
  • leadership_email - Email of the direct leader
  • workload - Contractual workload
  • schedule_type - Type of work schedule
  • branch_office_index - Index of the branch office
  • branch_office_history - History of branch offices (JSON string)
  • financial_data - Financial data such as monthly workload, hour cost, additionals and benefits (JSON string)
  • job_title_history - History of job titles (JSON string)
  • uses_punch_collector - Whether the employee punches on a physical collector (REP)
  • uses_online_punch - Whether the employee uses the online punch
  • uses_mobile_punch - Whether the employee uses the mobile app punch
  • uses_time_sheet - Whether the employee uses the timesheet product
  • uses_smartgate - Whether the employee uses the Smartgate access control product
  • uses_vacations - Whether the employee uses the vacations product
  • uses_rostering - Whether the employee uses the rostering (escalas) product
Time punches (batidas de ponto) of all employees. Sync: Incremental on punch_time, fetched in 30-day windows from the start date. Primary key: employee_id, punch_time.
  • employee_id - Unique identifier of the employee who registered the punch
  • employee_pis - PIS number of the employee
  • punch_time - Date and time the punch was registered (incremental replication key)
  • type - Type of the punch (e.g. MANUAL)
  • serial_number - Serial number of the device where the punch was registered
  • device_name - Name of the device where the punch was registered
  • latitude - Latitude where the punch was registered, when available
  • longitude - Longitude where the punch was registered, when available
  • reason - Reason associated with the punch, when available
  • punches - Additional punch information returned by the API
Employee leaves (afastamentos). Sync: Incremental on updated_at. Primary key: id.
  • id - Unique identifier of the leave
  • employee_registers - Registration numbers of the employees covered by the leave
  • start - Start date of the leave
  • end - End date of the leave
  • reason - Description of the leave reason
  • reason_code - Code of the leave reason
  • blocks_employee_access - Whether the leave blocks the employee’s access during its period
  • ignores_absence_payment - Whether absence payment is ignored
  • ignores_dsr_discount - Whether the paid weekly rest (DSR) discount is ignored
  • ignores_treatment_on_worked_hours - Whether treatments on worked hours are ignored
  • internal_code - Internal code in the company’s systems
  • is_compensating_for_holiday - Whether the leave compensates for a holiday
  • treat_worked_hours_as - How worked hours during the leave are treated
  • updated_at - Timestamp of the last update (incremental replication key)
  • updated_by - User who last updated the leave
Work schedules (escalas) configured in the account. Sync: Full table. Primary key: key.
  • key - Unique identifier of the schedule
  • name - Name of the schedule
  • description - Description of the schedule
  • code - Code of the schedule
  • workload - Workload of the schedule
  • type - Type of the schedule (e.g. SEMANAL)
  • ignore_workload_and_schedule_type_from_employee - Whether the schedule ignores the workload and schedule type configured on the employee
  • shifts - Keys of the shifts that compose the schedule
  • negative_hours_monthly_tolerance - Monthly tolerance for negative hours
  • paid_weekly_rest - Paid weekly rest (DSR) configuration (JSON string)
  • punch_on_leave_treatment - Treatment applied to punches registered while on leave
  • punch_on_nightly_leave_treatment - Treatment applied to punches registered while on nightly leave
  • nightly_account_code - Account code used for nightly hours
Work shifts (turnos) configured in the account. Sync: Full table. Primary key: key.
  • key - Unique identifier of the shift
  • name - Name of the shift
  • description - Description of the shift
  • uses_rostering - Whether the shift is used in rostering (escalas)
  • day_starts_at - Time at which the shift’s day starts
  • starts_on_previous_day - Whether the shift starts on the previous calendar day
  • office_hours - Expected office hours of the shift
  • has_no_office_hours - Whether the shift has no fixed office hours
  • flexible_break_hours - Flexible break hours of the shift
  • extra_hours - Extra hour thresholds configured for the shift
  • extra_office_hours_treatment - Treatment applied to extra hours worked within office hours
  • extra_hours_treatment - Treatment applied to extra hours worked
  • extra_nightly_hours_treatment - Treatment applied to extra hours worked at night
  • uses_hours_compensation - Whether the shift uses an hours compensation bank (banco de horas)
  • applies_factor_after_compensation - Whether the extra-hours factor is applied after compensation
  • negative_compensation_treatment - Treatment applied to negative compensated hours
  • positive_compensation_treatment - Treatment applied to positive compensated hours
  • negative_compensation_tolerance - Tolerance for negative compensated hours
  • positive_compensation_tolerance - Tolerance for positive compensated hours
  • intershift_break_treatment - Treatment applied to breaks between shifts (interjornada)
  • intrashift_break_treatment - Treatment applied to breaks within the shift (intrajornada)
  • extra_intra_shift_breat_treatment - Treatment applied to extra breaks within the shift
  • in_itinere_entry_bonus - In itinere bonus applied at entry
  • in_itinere_exit_bonus - In itinere bonus applied at exit
  • punch_on_leave_treatment - Treatment applied to punches registered while on leave
  • punch_on_nightly_leave_treatment - Treatment applied to punches registered while on nightly leave
  • periods_treatments - Treatments applied to specific periods of the shift (JSON string)
  • early_entry_tolerance - Tolerance for early entry punches
  • late_entry_tolerance - Tolerance for late entry punches
  • early_exit_tolerance - Tolerance for early exit punches
  • late_exit_tolerance - Tolerance for late exit punches