Пошаговая сборка сценария: от триггера по расписанию до уведомления в Telegram. Все ловушки учтены.
| Run scenario | Every day |
| At time | 10:00 |
| Timezone | Europe/Moscow (или ваш часовой пояс) |
| Base | Ваша база Matchlane |
| Table | Компании |
| Formula (Filter by formula) | AND(
FIND("????", {Статус активности}),
{Баланс мэтчей} > 0,
IS_BEFORE({Дата следующего мэтча}, TODAY()),
{ID активного матча} = ""
) |
| Max records | 100 |
IS_BEFORE включает и сегодняшнюю дату если писать IS_BEFORE({Дата следующего мэтча}, DATEADD(TODAY(), 1, 'days')). Или использовать <= TODAY(). [] а не "". Поэтому для проверки пустого поля через Formula используйте COUNT({ID активного матча}) = 0 вместо = "". | Array | {{2.records}} — массив из Search Records |
{{3.value.fields.*}} | Table | Компании |
| Formula | AND(
FIND("????", {Статус активности}),
{Баланс мэтчей} > 0,
COUNT({ID активного матча}) = 0,
RECORD_ID() != "{{3.value.id}}"
) |
| Max records | 50 |
{{3.value.fields["Уже предложено с"][]}} — это массив ID
{{4.records[].id}} Not in array {{3.value.fields["Уже предложено с"][]}} | URL | https://api.anthropic.com/v1/messages |
| Method | POST |
| Headers | x-api-key: YOUR_CLAUDE_API_KEY
anthropic-version: 2023-06-01
content-type: application/json |
| Body type | Raw (JSON) |
{{promptText}} собери отдельно в модуле Tools → Set Variable перед этим шагом — чтобы не захламлять HTTP-модуль. ID: {{record.id}} | {{record.fields["Профиль для AI"]}}, разделитель \n---\n | JSON string | // Сначала достань текст из ответа Claude:
{{5.data.content[1].text}}
// Если Claude обернул в ```json ... ``` — используй:
{{replace(replace(5.data.content[1].text, "```json", ""), "```", "")}} |
{{6.partner_id}}, {{6.score}}, {{6.match_type}}, {{6.analysis}} | Table | Компании |
| Record ID | {{6.partner_id}} |
| Table | Матчи |
| Компания А | [{{3.value.id}}] — массив с одним ID |
| Компания Б | [{{6.partner_id}}] |
| Статус мэтча А | Ожидает ответ от Б |
| Статус мэтча Б | Ожидает ответ от А |
| Оценка совместимости | {{6.score}} |
| Тип мэтча | {{6.match_type}} |
| Анализ совместимости | {{6.analysis}} |
| Дата предложения | {{addDays(now, 7)}} — дедлайн 7 дней |
["recXXXXXX"]. Если передать просто строку — получишь ошибку. | Record ID | {{3.value.id}} |
| ID активного матча | [{{8.id}}] — ID созданной записи Матча |
| Статус мэтча | Ожидает ответ |
| Баланс мэтчей | {{3.value.fields["Баланс мэтчей"] - 1}} |
| Уже предложено с | добавить [{{6.partner_id}}] к существующим |
{{3.value.fields["Уже предложено с"][]}} + новый ID. | Record ID | {{6.partner_id}} |
| ID активного матча | [{{8.id}}] |
| Статус мэтча | Ожидает ответ |
| Уже предложено с | добавить [{{3.value.id}}] |
| Delay | 3 секунды |
| Connection | Ваш бот | ||||||
| Chat ID | {{3.value.fields["Телеграм chat_id"]}} | ||||||
| Text | ???? Новое предложение о партнёрстве!
Мы подобрали для вас партнёра.
Откройте личный кабинет чтобы посмотреть детали. | ||||||
| Parse Mode | HTML | ||||||
| Inline keyboard |
|
| Chat ID | {{7.fields["Телеграм chat_id"]}} |
| Text | То же сообщение |
| Inline keyboard | Та же кнопка с WebApp |
{{поле[]}} для linked records. Передавать как ["recXXX"] при записи.content-type: application/json.