> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nekt.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Feedz as a data source

> Bring data from Feedz to Nekt.

Feedz (TOTVS RH Clima e Engajamento) is a Brazilian HR platform for employee engagement and performance,
covering mood check-ins, engagement and e-NPS surveys, OKRs, celebrations, digital admissions, and gamification.
This connector extracts the company's people data and engagement history through the Feedz integration API.

## 1. Add your Feedz access

1. In the [Sources](https://app.nekt.ai/sources) tab, click on the "Add source" button located on the top right of your screen. Then, select the Feedz option from the list of connectors.

2. Click **Next** and you'll be prompted to add your access.

   * **API Token**: the API v2 integration key of your Feedz account. A Feedz **administrator** can generate it under **Configurações → Integrações → Chave de Integração API v2** (Settings → Integrations → API v2 Integration Key).
   * **Start Date** (advanced): earliest date to sync for the incremental streams (`moods` and `notifications`). When omitted, the full history is synced.
   * **Base URL** (advanced): override only to target the Feedz sandbox environment.

<Info>
  The integration key can only be generated by a Feedz system administrator. The Feedz API allows up to
  100 requests every 30 seconds — the connector paces itself under this limit automatically.
</Info>

3. Click **Next**.

## 2. Select your Feedz streams

1. The next step is letting us know which streams you want to bring. You can select entire groups of streams or only a subset of them.

   > Tip: The stream can be found more easily by typing its name.

<Note>
  Some streams depend on specific Feedz modules (e.g. surveys, OKRs, digital admission, gamification). If a
  module is not enabled for your account, the corresponding stream is skipped with a warning instead of failing
  the sync — you can also simply leave those streams unselected.
</Note>

2. Click **Next**.

## 3. Configure your Feedz data streams

1. Customize how you want your data to appear in your catalog. Select a name for each table (which will contain the fetched data) and the type of sync.

* **Layer**: companies in the Growth plan can choose in which [layer](https://docs.nekt.com/get-started/core-concepts/catalog-layers) the tables with the extracted data will be placed.
* **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**: depending on the data you are bringing to the lake, you can choose between INCREMENTAL and FULL\_TABLE. Read more about Sync Types [here](https://docs.nekt.com/get-started/core-concepts/types-of-sync).

2. Click **Next**.

## 4. Configure your Feedz data source

1. Describe your data source for easy identification within your organization. You can inform things like what data it brings, to which team it belongs, etc.

2. To define your [Trigger](https://docs.nekt.com/runs/scheduling-and-triggers), 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).

3. Optionally, you can define some additional settings (if available).

* Configure Delta Log Retention and determine for how log we should store old states of this table as it gets updated. Read more about this resource [here](https://docs.nekt.com/get-started/core-concepts/resource-control).
* Determine when to execute an **Additional [Full Sync](https://docs.nekt.com/get-started/core-concepts/types-of-sync#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.

### Check your new source!

1. Click **Next** to finalize the setup. Once completed, you'll receive confirmation that your new source is set up!

2. You can view your new source on the [Sources](https://app.nekt.ai/sources) page. Now, for you to be able to see it on your [Catalog](https://app.nekt.ai/catalog), you have to wait for the pipeline to run. You can now monitor it on the [Sources](https://app.nekt.ai/sources) page to see its execution and completion. If needed, manually trigger the pipeline by clicking on the refresh icon. Once executed, your new table will appear in the Catalog section.

> If you encounter any issues, reach out to us via Slack, and we'll gladly assist you!

## Available streams

| Stream                  | Slug                      | Description                                                                             |
| ----------------------- | ------------------------- | --------------------------------------------------------------------------------------- |
| Employees               | `employees`               | All employees (collaborators) of the company, with department, branch, job and manager. |
| Employee Feedzcoins     | `employee_feedzcoins`     | Feedzcoins (gamification) balance of each employee.                                     |
| Turnovers               | `turnovers`               | Dismissed employees with reason, type and last working day.                             |
| Departments             | `departments`             | Company departments.                                                                    |
| Branches                | `branches`                | Company branches (business units).                                                      |
| Job Descriptions        | `job_descriptions`        | Job positions registered in the company.                                                |
| Job Description Groups  | `job_description_groups`  | Groups of job positions.                                                                |
| Digital Admissions      | `digital_admissions`      | Digital admission (onboarding) processes.                                               |
| Celebrations            | `celebrations`            | Celebrations posted on the Feedz feed, with likes and comments.                         |
| e-NPS Surveys           | `enps_surveys`            | History of e-NPS survey results.                                                        |
| Moods                   | `moods`                   | Daily mood check-ins of employees.                                                      |
| Notifications           | `notifications`           | Notifications sent to employees.                                                        |
| Objectives              | `objectives`              | Company objectives (OKRs) with key results and check-ins.                               |
| Complete Surveys        | `complete_surveys`        | Complete surveys ("Super Pesquisa") created in the company.                             |
| Complete Survey Answers | `complete_survey_answers` | Answers submitted to complete surveys.                                                  |
| Fast Surveys            | `fast_surveys`            | Fast surveys (quick polls) created in the company.                                      |
| Fast Survey Answers     | `fast_survey_answers`     | Answers submitted to fast surveys.                                                      |
| Pulse Surveys           | `pulse_surveys`           | Recurring engagement (pulse) surveys.                                                   |

## Fields by stream

Below you'll find all available data streams from Feedz and their corresponding fields:

<AccordionGroup>
  <Accordion title="employees">
    All employees (collaborators) of the company. **Sync:** Full table. **Primary key:** `employee_id`.

    * `employee_id` - Unique identifier of the employee
    * `name` - Display name of the employee
    * `full_name` - Full legal name of the employee
    * `description` - Free-text description of the employee's role and responsibilities
    * `email` - Primary email address of the employee
    * `cpf` - Brazilian individual taxpayer registry number (CPF) of the employee
    * `remuneration` - Salary of the employee, as a decimal string
    * `admission_at` - Date the employee was hired
    * `birth_at` - Birth date of the employee
    * `situation` - Current work situation of the employee (e.g. active, on vacation)
    * `manager` - Name of the employee's manager
    * `race` - Self-declared race/ethnicity of the employee
    * `gender` - Gender of the employee
    * `status` - Account status of the employee in Feedz (e.g. active)
    * `company` - Company the employee belongs to (name, or JSON object in the expanded form)
    * `company_data` - Company the employee belongs to (JSON object with id, name and description)
    * `branch` - Branch/unit of the employee (JSON object with id and name)
    * `department` - Department of the employee (name, or JSON object in the expanded form)
    * `department_data` - Department of the employee (JSON object with id and name)
    * `job_description` - Job position of the employee (JSON object with id, title and description)
    * `direct_manager` - Direct manager of the employee (JSON object with id, name and email)
    * `role` - Feedz access role of the employee (JSON object with id and name)
    * `origin` - How the employee record was created (e.g. inserted manually, integration)
    * `team` - Profile IDs of the members of the employee's team
    * `groups` - Names of the groups the employee belongs to
  </Accordion>

  <Accordion title="employee_feedzcoins">
    Feedzcoins (gamification) balance of each employee. **Sync:** Full table. **Primary key:** `employee_id`.

    * `employee_id` - Unique identifier of the employee (from the employees stream)
    * `cpf` - Brazilian individual taxpayer registry number (CPF) of the employee
    * `email` - Primary email address of the employee
    * `feedzcoins` - Current Feedzcoins (gamification currency) balance of the employee
  </Accordion>

  <Accordion title="turnovers">
    Dismissed employees (turnover records). **Sync:** Full table. **Primary key:** `id`.

    * `id` - Unique identifier of the turnover (dismissal) record
    * `reason` - Reason given for the dismissal
    * `type` - Numeric code of the dismissal type
    * `department` - Department the dismissed employee belonged to
    * `last_day_working` - Last working day of the dismissed employee
    * `profile` - Profile of the dismissed employee (JSON object with id, name, email, admission date and status)
  </Accordion>

  <Accordion title="departments">
    Company departments. **Sync:** Full table. **Primary key:** `id`.

    * `id` - Unique identifier of the department
    * `name` - Name of the department
  </Accordion>

  <Accordion title="branches">
    Company branches (business units). **Sync:** Full table. **Primary key:** `id`.

    * `id` - Unique identifier of the branch
    * `name` - Name of the branch (business unit)
  </Accordion>

  <Accordion title="job_descriptions">
    Job positions registered in the company. **Sync:** Full table. **Primary key:** `id`.

    * `id` - Unique identifier of the job position
    * `title` - Title of the job position
    * `description` - Description of the job position
    * `id_job_group` - Identifier of the job group this position belongs to
  </Accordion>

  <Accordion title="job_description_groups">
    Groups of job positions. **Sync:** Full table. **Primary key:** `id`.

    * `id` - Unique identifier of the job group
    * `title` - Title of the job group
    * `id_company` - Identifier of the company the job group belongs to
    * `description` - Description of the job group
    * `created_at` - Timestamp when the job group was created
    * `updated_at` - Timestamp of the last update to the job group
    * `deleted_at` - Timestamp when the job group was deleted, if applicable
    * `jobs` - Job positions included in the group (JSON array of objects with id)
  </Accordion>

  <Accordion title="digital_admissions">
    Digital admission (onboarding) processes. **Sync:** Full table. **Primary key:** `id`.

    * `id` - Unique identifier of the digital admission process
    * `name` - Full name of the candidate being admitted
    * `email` - Email address of the candidate being admitted
    * `deadline_at` - Deadline for the candidate to complete the admission process
    * `created_at` - Timestamp when the admission process was created
    * `updated_at` - Timestamp of the last update to the admission process
    * `profile_department` - Department assigned to the new hire (JSON object with id and name)
    * `profile_job` - Job position assigned to the new hire (JSON object with id and name/title)
    * `status` - Current status of the admission process (JSON object with id and name)
    * `profile` - Feedz profile created for the new hire (JSON object with id and language)
  </Accordion>

  <Accordion title="celebrations">
    Celebrations posted on the Feedz feed. **Sync:** Full table. **Primary key:** `id`.

    * `id` - Unique identifier of the celebration
    * `id_profile_from` - Profile ID of the employee who posted the celebration
    * `id_profile_to` - Profile ID of the employee being celebrated
    * `comment` - HTML content of the celebration post
    * `dt_create` - Timestamp when the celebration was posted
    * `likes` - Likes received by the celebration (JSON array of objects)
    * `comments` - Comments received by the celebration (JSON array of objects)
  </Accordion>

  <Accordion title="enps_surveys">
    History of e-NPS survey results. **Sync:** Full table.

    * `dt_create` - Date the e-NPS survey was created
    * `dt_final` - Closing date of the e-NPS survey
    * `departments` - Names of the departments covered by the survey
    * `detractors` - Number of detractor responses (score 0-6)
    * `passives` - Number of passive responses (score 7-8)
    * `promoters` - Number of promoter responses (score 9-10)
    * `enps` - Resulting e-NPS score (percentage of promoters minus detractors)
    * `status` - Status of the survey (e.g. active)
  </Accordion>

  <Accordion title="moods">
    Daily mood check-ins of employees. **Sync:** Incremental. **Replication key:** `date`.

    * `mood` - Mood reported by the employee (e.g. very happy, happy)
    * `description` - Optional comment left with the mood check-in
    * `department` - Department of the employee at check-in time
    * `branch` - Branch of the employee at check-in time
    * `name` - Name of the employee who checked in
    * `average` - Average mood score associated with the check-in
    * `date` - Date of the mood check-in, used as the incremental replication key
  </Accordion>

  <Accordion title="notifications">
    Notifications sent to employees. **Sync:** Incremental. **Replication key:** `dt_created`.

    * `id` - Unique identifier of the notification
    * `link` - Link the notification points to inside Feedz
    * `custom_message` - Custom message attached to the notification, when present
    * `dt_created` - Timestamp when the notification was created, used as the incremental replication key
    * `message` - Text of the notification
    * `profile_from` - Profile that triggered the notification (JSON object with id and email)
    * `profile_to` - Profile that received the notification (JSON object with id and email)
  </Accordion>

  <Accordion title="objectives">
    Company objectives (OKRs) with key results and check-ins. **Sync:** Full table. **Primary key:** `id`.

    * `id` - Unique identifier of the objective (OKR)
    * `id_parent` - Identifier of the parent objective, or 0 when top-level
    * `id_owner` - Profile ID of the objective's owner
    * `id_company` - Identifier of the company the objective belongs to
    * `id_department` - Identifier of the department the objective belongs to
    * `objective` - Title of the objective
    * `percentage_status` - Completion percentage of the objective, as a decimal string
    * `status` - Numeric status code of the objective
    * `private` - Whether the objective is private (1) or public (0)
    * `people_allowed` - Profiles allowed to view the objective, when restricted
    * `people_edit` - Profiles allowed to edit the objective
    * `dt_start` - Start of the objective's period
    * `dt_end` - End of the objective's period
    * `id_period` - Identifier of the OKR period the objective belongs to
    * `signaling` - Numeric signaling (health) indicator of the objective
    * `tags` - Tags attached to the objective
    * `parent` - Parent objective summary (JSON object with id and objective title)
    * `key_results` - Key results of the objective, including their check-ins (JSON array of objects)
    * `department` - Department of the objective (JSON object with id and name)
    * `checkins` - Check-ins recorded on the objective's key results (JSON array of objects)
    * `department_name` - Name of the department the objective belongs to
    * `owner_name` - Name of the objective's owner
  </Accordion>

  <Accordion title="complete_surveys">
    Complete surveys ("Super Pesquisa") created in the company. **Sync:** Full table. **Primary key:** `id`.

    * `id` - Unique identifier of the survey
    * `id_company` - Identifier of the company that owns the survey
    * `id_profile_created` - Profile ID of the user who created the survey
    * `id_departments` - Comma-separated IDs of the departments targeted by the survey
    * `id_profiles` - Comma-separated IDs of the profiles targeted by the survey
    * `title` - Title of the survey
    * `description` - Description of the survey
    * `image` - URL of the image attached to the survey, when present
    * `video` - URL of the video attached to the survey, when present
    * `total_employees` - Number of employees targeted by the survey
    * `anonymous` - Whether answers are anonymous (1) or identified (0)
    * `dt_deadline` - Deadline for answering the survey
    * `dt_created` - Date the survey was created
  </Accordion>

  <Accordion title="complete_survey_answers">
    Answers submitted to complete surveys. **Sync:** Full table. **Primary key:** `id`.

    * `id` - Unique identifier of the answer
    * `id_company` - Identifier of the company that owns the survey
    * `id_survey` - Identifier of the survey the answer belongs to
    * `id_question` - Identifier of the question being answered
    * `id_profile` - Profile ID of the respondent (null for anonymous surveys)
    * `id_profile_department` - Department ID of the respondent
    * `id_profile_branch` - Branch ID of the respondent, when available
    * `id_profile_role` - Feedz role ID of the respondent
    * `answer` - Free-text answer, when the question accepts text
    * `answer_option` - Identifier of the selected answer option, for choice questions
    * `free_input_text` - Additional free-input text attached to the answer
    * `hash` - Anonymous respondent hash, when the survey is anonymous
    * `created_at` - Timestamp when the answer was submitted
  </Accordion>

  <Accordion title="fast_surveys">
    Fast surveys (quick polls) created in the company. **Sync:** Full table. **Primary key:** `id`.

    * `id` - Unique identifier of the fast survey
    * `id_company` - Identifier of the company that owns the fast survey
    * `id_profile_created` - Profile ID of the user who created the fast survey
    * `id_departments` - Comma-separated IDs of the departments targeted by the fast survey
    * `question_old` - Previous text of the question, kept for history
    * `question` - Text of the question asked
    * `description_old` - Previous description of the fast survey, kept for history
    * `description` - Description of the fast survey
    * `type` - Numeric type code of the fast survey
    * `status` - Numeric status code of the fast survey
    * `dt_created` - Timestamp when the fast survey was created
    * `dt_deadline` - Deadline for answering the fast survey
    * `image` - URL of the image attached to the fast survey, when present
    * `video` - URL of the video attached to the fast survey, when present
    * `total_employees` - Number of employees targeted by the fast survey
    * `anonymous` - Whether answers are anonymous (1) or identified (0)
  </Accordion>

  <Accordion title="fast_survey_answers">
    Answers submitted to fast surveys. **Sync:** Full table. **Primary key:** `id`.

    * `id` - Unique identifier of the answer
    * `id_fast_survey` - Identifier of the fast survey the answer belongs to
    * `id_profile` - Profile ID of the respondent
    * `score` - Score selected by the respondent, for score-type questions
    * `answer_old` - Previous text of the answer, kept for history
    * `answer` - Text of the answer
    * `answer_option` - Identifier of the selected answer option, when applicable
    * `dt_answer` - Timestamp when the answer was submitted
    * `profile` - Respondent profile (JSON object with id, name and email)
  </Accordion>

  <Accordion title="pulse_surveys">
    Recurring engagement (pulse) surveys. **Sync:** Full table. **Primary key:** `id`.

    * `id` - Unique identifier of the engagement survey
    * `id_company` - Identifier of the company that owns the survey
    * `id_profile` - Profile ID of the user who created the survey
    * `id_departments` - Comma-separated IDs of the departments targeted by the survey
    * `name` - Name of the engagement survey
    * `description` - Description of the engagement survey
    * `day_of_the_week` - Day of the week the survey is sent (numeric string)
    * `number_questions` - Number of questions sent per round
    * `free_text` - Whether free-text answers are enabled (1) or not (0)
    * `ranges` - Number of points in the answer scale
    * `ranges_text` - Labels of the answer scale points (JSON array of objects)
    * `favorability` - Scale points considered favorable answers
    * `anonymous_checkbox` - Whether respondents may choose to identify themselves (1) or not (0)
    * `min_departament_to_show` - Minimum number of respondents required to show department results
    * `is_default` - Whether this is the default engagement survey (1) or not (0)
    * `is_suvery_climao` - Legacy flag for the climate survey type (kept as returned by the API)
    * `is_survey_climao` - Whether this survey is a climate survey (1) or not (0)
    * `status` - Numeric status code of the survey
    * `minimum_admission_date_to_answer` - Minimum admission date an employee must have to receive the survey
    * `created_at` - Timestamp when the survey was created
    * `history` - History of survey rounds (JSON array of objects)
    * `engagement_level` - Engagement level computed from the survey results
    * `can_access` - Whether the requesting token can access the survey results
  </Accordion>
</AccordionGroup>

## Skills for agents

<Snippet file="agent-skills-intro.mdx" />

<Card title="Download Feedz skills file" icon="wand-magic-sparkles" href="/sources/feedz.md">
  Feedz connector documentation as plain markdown, for use in AI agent contexts.
</Card>
