Skip to main content
Updated Aug 4, 2026
servicesappointmentsschedulingseed-datacatalogsalon

Agendador Environment

Seed set of salon services used by the agendador assistant to describe offerings and create bookings.

services appointments scheduling seed-data catalog salon

Download ZIP

This seed is the companion of the Agente agendador example, which fetches this catalog to list offerings and prices. The agent's ZIP already bundles the same seed, so you only need this download to seed the catalog on its own.

What's Included

The ZIP contains the Services custom type (ct:services) plus 5 documents:

#NameDetails
1Corte de cabeloR$ 50, 30 min
2BarbaR$ 35, 20 min
3Corte + BarbaR$ 75, 45 min
4Hidratação capilarR$ 60, 40 min
5SobrancelhaR$ 25, 15 min

Full JSON

Custom type (custom_types.json)

Click to expand
[
{
"_id": {
"$oid": "c7a4b1e2d3f4051627384901"
},
"slug": "services",
"name": "Services",
"description": "Service catalogue. Each service defines a duration and price.",
"purpose": "Represents bookable services offered by the company. Referenced from ct:events.services[]. Use when the user asks about pricing, durations, or offerings.",
"fields": [
{
"name": "employeeId",
"description": "Provider employee.",
"schema": {
"type": "ref",
"ref": "employees",
"required": true
},
"cel": {
"label": "t('services_employeeId')"
}
},
{
"name": "name",
"description": "Service name (unique per employee).",
"schema": {
"type": "string",
"required": true,
"trim": true,
"maxLength": 64
},
"cel": {
"label": "t('name')"
}
},
{
"name": "value",
"description": "Price.",
"schema": {
"type": "number",
"required": true,
"min": 0,
"max": 1000
},
"cel": {
"label": "t('price')"
}
},
{
"name": "durationMinutes",
"description": "Duration in minutes.",
"schema": {
"type": "number",
"required": true,
"min": 5,
"max": 360
},
"cel": {
"label": "t('duration')"
}
}
],
"indexedPaths": [
"employeeId"
],
"mcpTips": [
"Every service belongs to a specific employee via employeeId.",
"Event end times are computed from sum of selected service durations (see the agenda-ensure-services-end-timestamp workflow)."
],
"cel": {
"preview": {
"lines": [
{
"parts": [
{
"type": "text",
"expr": "(has(values, 'name') && values.name != '') ? values.name : ffConcat('Service ', ffShortId(values._id))"
}
]
},
{
"parts": [
{
"type": "text",
"expr": "ffConcat(ffMoney(values.value), ' · ', values.durationMinutes, ' min')"
}
]
}
]
}
}
}
]

Seed documents (custom_type_docs.json)

Click to expand
[
{
"_id": {
"$oid": "5df3d9175e394707dd181130"
},
"customTypeId": {
"$oid": "c7a4b1e2d3f4051627384901"
},
"data": {
"employeeId": "<employee-id>",
"name": "Corte de cabelo",
"value": 50,
"durationMinutes": 30
}
},
{
"_id": {
"$oid": "dff033ceb254004cbff3c651"
},
"customTypeId": {
"$oid": "c7a4b1e2d3f4051627384901"
},
"data": {
"employeeId": "<employee-id>",
"name": "Barba",
"value": 35,
"durationMinutes": 20
}
},
{
"_id": {
"$oid": "da5bce3930518b821c531b29"
},
"customTypeId": {
"$oid": "c7a4b1e2d3f4051627384901"
},
"data": {
"employeeId": "<employee-id>",
"name": "Corte + Barba",
"value": 75,
"durationMinutes": 45
}
},
{
"_id": {
"$oid": "f1a00296350b9abde4f1fc43"
},
"customTypeId": {
"$oid": "c7a4b1e2d3f4051627384901"
},
"data": {
"employeeId": "<employee-id>",
"name": "Hidratação capilar",
"value": 60,
"durationMinutes": 40
}
},
{
"_id": {
"$oid": "87168436540bd70ff795c35a"
},
"customTypeId": {
"$oid": "c7a4b1e2d3f4051627384901"
},
"data": {
"employeeId": "<employee-id>",
"name": "Sobrancelha",
"value": 25,
"durationMinutes": 15
}
}
]

How to Import

  1. Download the ZIP file using the button above
  2. Navigate to Company Settings → Data Transfer in your AutoTalk dashboard
  3. Click Import and select the downloaded ZIP file
  4. Review the import summary and confirm
  5. All document IDs are automatically remapped — no manual ID editing needed
warning

The seeded documents ship with an <employee-id> placeholder. After importing, edit each service so employeeId points to one of your employees.