Публичные контакты CONTACT_FORM

Обновлено: Nov 12, 2026Раздел: Интеграции

CONTACT_FORM integrations store a public Contacts block in config.publicContacts (Connection & settings):

  • phones --- id, number, label, optional locales (BLOG-style { hy|ru|en: { name } }), optional messengers whatsapp / telegram / viber (true or a handle string)
  • emails --- id, address, label, optional locales
  • addresses --- optional id, text, label, optional locales
  • site --- optional { url, label, locales }

Ids are stable (assigned on save). Labels resolve with optional ?locale=.

External read

GET /api/v1/forms/{projectUid}/integrations/{integrationId}/public-contacts?locale=ru

Requires X-API-Key with form.external-read (or FULL), or an MCP token with membership. SDK: @mailoo/forms/contacts → fetchContactFormPublicContacts.

Manage / MCP

GET/PATCH …/forms/…/settings (form.manage) and MCP manage_form_integration_settings accept publicContacts (CONTACT_FORM only; null clears).

MARKET price-list header

MARKET config.contactsSource selects a same-project CONTACT_FORM plus phoneId / emailId. Admin wholesale export and the external read API both resolve that source with the same formatPriceListContactsBlock helper. If unset or broken, they fall back to config.priceList.contacts; if neither is available, the external API returns null.

GET /api/v1/market/{projectUid}/integrations/{integrationId}/wholesale-price-list/contacts?locale=ru

Requires X-API-Key with market.external-read (or FULL), or an MCP token. Response: { "success": true, "data": { "contacts": "…" } } (contacts may be null). SDK: createMailooMarketClient(config).getWholesalePriceListContacts({ locale }).

📚