Altegio
Renta exports seven kinds of Altegio data to your data warehouse: finance transactions, client appointments with their services and documents, day by day payroll for every staff member, the service catalog with its categories, the staff roster, and the profile of each location.
A salon chain runs on several locations, and Altegio calls them companies. One pipeline covers as many of them as you need, and the rows land in one table where the Company ID column tells them apart.
You pick the fields of each report type yourself. Every report type reloads in full on each run, so the destination table repeats the Altegio account as it was when the run started.
Authentication
Renta connects to Altegio with two values issued by its Marketplace: the API key, which identifies the application, and the User hash key, which identifies the user the application acts on behalf of.
- API key.
Register in the Altegio Marketplace as a developer. Altegio issues the key itself, and you find it in the Account settings section of the Marketplace. - User hash key.
Open the API access settings of the same application and fill in the User ID field. To find that ID, go to Settings > List of users in Altegio and open the user. The ID is the second number in the address bar. Save the settings, and the value shows up in the User token field.
The user behind the hash key determines what the pipeline can reach. Only the locations that user has access to appear in the Companies dropdown, and only the data their permissions allow arrives in the warehouse.
Grant the user access to every location you plan to export before you connect the source. A location added in Altegio later shows up in Companies only after the user gets access to it.
Connect Altegio source
- Navigate to the Connections > Catalog section in the left sidebar.
- Open the CRM category and click the Altegio card.

- In the API key field, paste the key from the Account settings section of the Altegio Marketplace.
- In the User hash key field, paste the value from the User token field of your Marketplace application.

- In the Source name field, specify a name for this data source. It is used exclusively in the Renta interface.
- Click Save.
Renta asks Altegio for the list of locations before saving, so a mistyped key or a user without access fails right on this step.

The new source appears in the Sources list with the Active status. You can now use it in pipelines.

Create an Altegio pipeline
Once the source is connected, link it to a destination and configure the pipeline.
In the left sidebar, click New pipeline. On the Source step, select Altegio under Already connected and click Next step.

Choose the Altegio connection you created earlier and click Next step. The card shows the name of the connection and the date it was added.

On the Destination step, select your destination (for example, Google BigQuery) and click Next step.

Choose the destination connection you want to load data into and click Next step. The card shows the dataset and project the data will land in.

Pipeline configuration
On the final step, choose the locations and the report, pick its fields, and set the schedule.
Companies
Select the Altegio locations the pipeline covers. The dropdown is filled from your Altegio account, and you can tick as many locations as you need.

Everything you tick lands in one destination table. The Company ID column marks which location a row belongs to, and it is available in all seven report types, so add it whenever a pipeline covers more than one location.
The Selected Companies list below the dropdown shows your current choice and lets you drop a location from it.
Report type
Select which Altegio object the pipeline exports. One pipeline loads one report type.
| Report type | Description |
|---|---|
| Appointments report | Appointment records with the visit date and time, attendance and confirmation status, the number of clients, the comment left on the record, the user who created it, the booking form it came from, and the deleted flag. Client, staff, services, documents, and goods transactions arrive as nested structures. |
| Company metadata | The profile of the location: title, category, logo, phone, operating schedule, address, city, country, timezone, currency abbreviation, and whether the license is paid. |
| Service categories metadata | The service categories of the location with the category and service identifiers, the booking title, the minimum and maximum price, the staff who can perform the service, the gender restriction, and the sort weight. |
| Service metadata | The service catalog with duration, technical break, capacity, price range and discount, prepayment and autopayment settings, tax variant and VAT, online booking availability, the category the service belongs to, the booking and print titles, and the active flag. |
| Staff metadata | The staff roster with name, specialization, position, rating, email and phone, avatars, online booking settings, the linked user account, and the dismissal date and reason for those who left. |
| Staff salary | Day by day payroll for every staff member: salary, the count and sum of services, the count of group services, the count and sum of goods sales, total sum, working days, and working hours. |
| Transactions | Finance transactions of the location: amount, the account the money went through and whether it was cash, the client, the linked service record, the visit and document identifiers, the expense category and type, the sold item, a comment, and the date of the last change. |
Staff salary covers calculations from 1 January 2024 up to the day the run starts. The pipeline has no date range setting, so the depth of payroll history is fixed and earlier periods stay out of the warehouse.
Parameters
Select the Altegio fields to include in the destination table.

| Name | API name | Description |
|---|---|---|
Transaction ID int | id | Unique transaction identifier. |
Document ID int | document_id | Associated document identifier for this transaction. |
Record ID int | record_id | Service record associated with the transaction. |
Account Title text | account_title | Title of the financial account involved in the transaction. |
Account ID int | account_id | Identifier of the payment account (e.g. WayForPay). |
Account is Default bool | account_is_default | Indicates whether the account is set as default. |
Account is Cash bool | account_is_cash | Indicates whether the transaction used a cash account. |
Amount float | amount | Transaction amount in the system's currency. |
Client ID int | client_id | Identifier of the client associated with the transaction. |
Client Name text | client_name | First name of the client involved in the transaction. |
Client Surname text | client_surname | Surname of the client involved in the transaction. |
Client Patronymic text | client_patronymic | Middle name or patronymic of the client. |
Client Phone text | client_phone | Client's contact phone number. |
Comment text | comment | Comment or description attached to the transaction. |
Transaction datetime datetime | datetime | Date and time of the transaction in ISO 8601 format. |
Transaction date date | date | Date and time of the transaction in YYYY-MM-DD format. |
Last Change Date datetime | last_change_date | Date of the last change made to this transaction. |
Expense ID int | expense_id | Identifier of the expense category. |
Expense Title text | expense_title | Name of the expense category. |
Expense Type int | expense_type | Numeric code representing the type of expense. |
Sold Item ID int | sold_item_id | ID of the sold service or item in the transaction. |
Sold Item Type text | sold_item_type | Type of the sold item (e.g., 'service'). |
Visit ID int | visit_id | Identifier of the visit associated with the transaction. |
Company ID int | company_id | Identifier of the company id. |
| Name | API name | Description |
|---|---|---|
Company ID int | id | Identifier of the company. |
Company Name text | title | Name of the company. |
Company Category text | short_descr | Category of the company. |
Company Logo text | logo | Address of the company's logo image. |
Is Active text | active | Presence of a paid license indicating whether the company is active. |
Company Phone text | phone | Contact phone number of the company. |
Country ID int | country_id | Identifier of the country where the company is located. |
Schedule text | schedule | Operating schedule of the company. |
Country Name text | country | Name of the country where the company is located. |
City ID int | city_id | Identifier of the city where the company is located. |
City Name text | city | Name of the city where the company is located. |
Timezone text | timezone_name | Name of the company's timezone. |
Address text | address | Address where the company is located. |
Currency Abbreviation text | currency_short_title | Abbreviated name of the currency used by the company. |
| Name | API name | Description |
|---|---|---|
Acceptance Free text | acceptance_free | Whether the appointment can be accepted without confirmation. |
Activity ID int | activity_id | Identifier of the related activity. |
API ID text | api_id | UUID of the appointment record in the API. |
Attendance int | attendance | Attendance status of the appointment. |
Bookform ID int | bookform_id | Identifier of the booking form. |
Client [Object] structure | client | Information about the client. |
Clients Count int | clients_count | Number of clients in the appointment. |
Comer text | comer | Source of the client or visit. |
Comment text | comment | Comment for the appointment. |
Company ID int | company_id | ID of the company. |
Confirmed bool | confirmed | Whether the appointment is confirmed. |
Create Date datetime | create_date | Datetime the appointment was created (ISO format). |
Created User ID int | created_user_id | ID of the user who created the appointment. |
Custom Color text | custom_color | Custom card color (HEX without #). |
Custom Font Color text | custom_font_color | Custom font color (HEX without #). |
Date (Local) date | date | Local date and time of the visit (string). |
Datetime (ISO) datetime | datetime | ISO 8601 date and time of the visit. |
Deleted bool | deleted | Whether the appointment is deleted. |
Staff [Object] structure | staff | Information about the staff. |
Services [Object] structure | services | Information about the services. |
Documents [Object] structure | documents | Information about the documents. |
Goods transactions [Object] structure | goods_transactions | Information about the goods transactions. |
| Name | API name | Description |
|---|---|---|
API ID text | api_id | External API identifier for the service. |
Booking Title text | booking_title | Title used for booking this service. |
Category ID int | category_id | Identifier of the service category. |
Service ID int | id | Unique identifier of the service. |
Is Chain Service bool | is_chain | Indicates if this is a chain service that can be booked as a sequence. |
Maximum Price int | price_max | Maximum price for the service. |
Minimum Price int | price_min | Minimum price for the service. |
Salon Service ID int | salon_service_id | Internal salon identifier for the service. |
Gender int | sex | Gender specification for the service (0 for any, 1 for male, 2 for female). |
Staff IDs array_int | staff | Array of staff member IDs who can provide this service. |
Service Title text | title | Name or title of the service. |
Weight int | weight | Priority or weight value for service ordering. |
Company ID int | company_id | Identifier of the company id. |
| Name | API name | Description |
|---|---|---|
Abonement Restriction Value int | abonement_restriction_value | Value of abonement restriction for the service. |
Active Status int | active | Indicates if the service is active (0 for inactive, 1 for active). |
API ID text | api_id | External API identifier for the service. |
API Service ID int | api_service_id | External API service identifier. |
Autopayment Before Visit Time int | autopayment_before_visit_time | Time in minutes before visit when autopayment is processed. |
Booking Title text | booking_title | Title used for booking this service. |
Capacity int | capacity | Maximum number of clients that can be served simultaneously. |
Category ID int | category_id | Identifier of the service category. |
Comment text | comment | Additional comment or description for the service. |
Date From text | date_from | Start date when the service is available (format: YYYY-MM-DD). |
Date To text | date_to | End date when the service is available (format: YYYY-MM-DD). |
Default Technical Break Duration int | default_technical_break_duration | Default duration of technical breaks in minutes. |
Discount int | discount | Discount percentage applied to the service. |
Duration int | duration | Duration of the service in minutes. |
Service ID int | id | Unique identifier of the service. |
Is Abonement Autopayment Enabled int | is_abonement_autopayment_enabled | Indicates if autopayment is enabled for abonements. |
Is Chain Service bool | is_chain | Indicates if this is a chain service that can be booked as a sequence. |
Is Comment Managed Only In Chain bool | is_comment_managed_only_in_chain | Indicates if comments are managed only within chain services. |
Is Composite bool | is_composite | Indicates if this is a composite service. |
Is Multi bool | is_multi | Indicates if this is a multi-service. |
Is Need Limit Date bool | is_need_limit_date | Indicates if the service requires a limit date. |
Is Online bool | is_online | Indicates if the service is available online. |
Is Price Managed Only In Chain bool | is_price_managed_only_in_chain | Indicates if pricing is managed only within chain services. |
Online Invoicing Status int | online_invoicing_status | Status of online invoicing for the service. |
Original Title text | original_title | Original title of the service. |
Prepaid Status text | prepaid | Prepaid status of the service (forbidden, allowed, required). |
Maximum Price int | price_max | Maximum price for the service. |
Minimum Price int | price_min | Minimum price for the service. |
Price Prepaid Amount int | price_prepaid_amount | Amount to be prepaid for the service. |
Price Prepaid Percent int | price_prepaid_percent | Percentage of the service price to be prepaid. |
Print Title text | print_title | Title used for printing purposes. |
Repeat Visit Days Step int | repeat_visit_days_step | Number of days between repeat visits. |
Salon Service ID int | salon_service_id | Internal salon identifier for the service. |
Schedule Template Type int | schedule_template_type | Type of schedule template used for the service. |
Seance Search Finish int | seance_search_finish | End time for seance search in seconds from midnight. |
Seance Search Start int | seance_search_start | Start time for seance search in seconds from midnight. |
Seance Search Step int | seance_search_step | Step interval for seance search in seconds. |
Service Type int | service_type | Type classification of the service. |
Step int | step | Step value for service scheduling. |
Tax Variant text | tax_variant | Tax variant applied to the service. |
Technical Break Duration int | technical_break_duration | Duration of technical breaks in minutes. |
Service Title text | title | Name or title of the service. |
VAT ID text | vat_id | Value Added Tax identifier for the service. |
Weight int | weight | Priority or weight value for service ordering. |
Company ID int | company_id | Identifier of the company id. |
| Name | API name | Description |
|---|---|---|
Date date | date | Date of the salary calculation in YYYY-MM-DD format. |
Staff ID int | staff_id | Unique identifier of the staff member. |
Goods Sales Count int | goods_sales_count | Number of goods sold by the staff member on this date. |
Goods Sales Sum text | goods_sales_sum | Total amount from goods sales by the staff member on this date. |
Group Services Count int | group_services_count | Number of group services provided by the staff member on this date. |
Salary text | salary | Salary amount for the staff member on this date. |
Services Count int | services_count | Number of services provided by the staff member on this date. |
Services Sum text | services_sum | Total amount from services provided by the staff member on this date. |
Total Sum text | total_sum | Total amount earned by the staff member on this date. |
Working Days Count int | working_days_count | Number of working days for the staff member on this date. |
Working Hours Count float | working_hours_count | Number of working hours for the staff member on this date. |
Company ID int | company_id | Identifier of the company id. |
| Name | API name | Description |
|---|---|---|
Staff ID int | id | Unique identifier of the staff member. |
Staff Name text | name | Full name of the staff member. |
Company ID int | company_id | Identifier of the company. |
Specialization text | specialization | Specialization or expertise area of the staff member. |
Information text | information | Additional information about the staff member. |
API ID text | api_id | External API identifier of the staff member. |
Fired Status int | fired | Fired status of the staff member (0 for active, 1 for fired). |
Is Fired bool | is_fired | Whether the staff member is fired. |
Dismissal Date text | dismissal_date | Date when the staff member was dismissed. |
Dismissal Reason text | dismissal_reason | Reason for staff member dismissal. |
Hidden Status int | hidden | Hidden status of the staff member (0 for visible, 1 for hidden). |
Is Online bool | is_online | Whether the staff member is available online. |
Status int | status | Current status of the staff member. |
Is Deleted bool | is_deleted | Whether the staff member record is deleted. |
User ID int | user_id | Associated user ID for the staff member. |
Rating int | rating | Overall rating of the staff member. |
Prepaid Status text | prepaid | Prepaid status for the staff member (forbidden, allowed, required). |
Is Chain bool | is_chain | Whether the staff member can work in chain services. |
Weight int | weight | Priority or weight value for staff member ordering. |
Is Rating Shown bool | is_rating_shown | Whether the staff member's rating is shown to clients. |
Is Online Random Choice Allowed bool | is_online_random_choice_allowed | Whether random choice is allowed for online staff member. |
Seance Step int | seance_step | Step value for staff member seance scheduling. |
Seance Search Step int | seance_search_step | Step interval for seance search in seconds. |
Seance Search Start int | seance_search_start | Start time for seance search in seconds from midnight. |
Seance Search Finish int | seance_search_finish | End time for seance search in seconds from midnight. |
Is Timetable Off bool | is_timetable_off | Whether the staff member's timetable is turned off. |
Is Fullness Accounting bool | is_fullness_accounting | Whether fullness accounting is enabled for the staff member. |
Google Clients bool | google_clients | Whether the staff member works with Google clients. |
Timetable Markup Divider Interval int | timetable_markup_divider_interval | Timetable markup divider interval for the staff member. |
Email text | email | Email address of the staff member. |
Phone text | phone | Phone number of the staff member. |
Is YClients Team bool | is_yclients_team | Whether the staff member is part of YClients team. |
Is Available As Assistant bool | is_available_as_assistant | Whether the staff member is available as an assistant. |
Avatar text | avatar | URL of the staff member's small avatar image. |
Avatar Big text | avatar_big | URL of the staff member's large avatar image. |
Position text | position | Position or job title of the staff member. |
User text | user | Associated user information for the staff member. |
Is Bookable bool | is_bookable | Whether the staff member can be booked for appointments. |
The name under each field is the column it becomes in the destination table. Select All checks the whole list at once.
The set of available fields depends on the report type, and no field is picked for you.
In Appointments report, five fields hold whole objects rather than single values, and Renta writes them as nested structures instead of splitting a record across rows.
| Field | What it holds |
|---|---|
| Client [Object] | The client of the appointment: name, phone, email, discount, loyalty card, and the counts of successful and failed visits. |
| Documents [Object] | The documents attached to the visit, with their number, type, category, storage, and creation date. |
| Goods transactions [Object] | The goods sold during the visit, with article, barcode, price, discount, and the storage they left. |
| Services [Object] | The services rendered, with title, amount, cost, cost per unit, discount, and the manual cost flag. |
| Staff [Object] | The staff member who took the appointment, with specialization, rating, and votes count. |
Transactions carries the moment of payment twice. Transaction datetime keeps the full timestamp, and Transaction date holds the same moment as a calendar day, which is what you group by for daily revenue.
Table name
Name the pipeline and the destination table.

- Integration name.
The name of the pipeline. It is used exclusively in the Renta interface. - Table name.
The destination table name. You can keep the auto-generated name or enter your own.
Schedule
Choose how often the pipeline runs.

| Schedule type | Description |
|---|---|
| Manual | The pipeline runs only when triggered manually through the interface or via API. |
| Daily | The pipeline runs once a day at the specified update time. |
| Interval | The pipeline runs at specified time intervals. |
| Cron Expression | The pipeline runs on a schedule defined by a cron expression. |
For Daily schedules, set the Update time, the exact time each run starts, then click Create pipeline.

A Staff salary run rebuilds a multi-year window for every staff member of every ticked location, so it takes noticeably longer than the other report types. Give it a schedule of its own rather than stacking it on the same hour as the rest.
Renta also supports API triggers and integration with external orchestrators such as Apache Airflow, Dagster, and Prefect. See the full scheduling documentation for details.
The new pipeline appears in the Pipelines section under the ETL tab, where you can track its runs, progress, and the destination table name.

Sync strategy
Renta synchronizes every Altegio report type the same way.
| Strategy | Supported report types | Description |
|---|---|---|
| Full reload | Transactions, Company metadata, Appointments report, Service categories metadata, Service metadata, Staff salary, Staff metadata | Every run reads the selected report type in full for every ticked location and replaces the contents of the destination table. Nothing narrows a run down to the records changed since the previous one, and no record is matched and updated in place. The table repeats the Altegio account at the time of the run, so a record that Altegio stops returning, such as a deleted appointment, leaves the table on the next run. |
Because every run reads the report type in full, the pipeline has no date range or overwrite period settings. Destination tables stay unpartitioned, so a query over a long transaction history scans the whole table.
Ready to get started?
Build your data pipeline today or get a personalized demo. Start free!
Need help?
Get expert support to ensure your project succeeds. We're here to help!
Feature requests?
Help shape our product! Share your ideas for new features and integrations.