Birta

Принимайте заявки с формы

Разместите форму на опубликованном сайте и читайте заявки посетителей в панели Birta. Опишите форму агенту своими словами. Он объявит форму, сверстает её под ваш дизайн и опубликует.

  1. 1. Попросите агента сделать форму

    Скажите, что хотите собирать: имя, email, сообщение, может быть галочку с разрешением на ответ.

    Агент объявляет эту форму на проекте. У каждого поля есть короткий идентификатор — по нему сверяется заявка — и необязательная подпись только для панели. Текст, который видит посетитель, остаётся на странице, так что вы можете переписать его в любой момент, не трогая форму.

  2. 2. Агент собирает и подключает её

    У Birta нет готового блока формы, и он не диктует, как ей выглядеть. Агент верстает форму в дизайне вашего сайта и пишет код, который отправляет заявку.

    Строка «спасибо» и каждая строка с ошибкой — тоже слова вашего сайта: Birta говорит агенту, какое правило нарушила заявка, а агент превращает это в ваш стиль. Переименование проекта или подключение своего домена никогда не ломает форму.

  3. 3. Публикуйте в любом порядке

    Форма начинает принимать заявки, как только у проекта есть и объявленная форма, и опубликованный сайт. Объявите её до публикации или после, неважно, а изменение формы позже не требует повторной публикации.

    Проверяйте на опубликованном сайте. Предпросмотр версии не принимает заявки нарочно: заявка принадлежит живому сайту, а не черновику.

  4. 4. Читайте заявки в панели

    Каждая принятая заявка появляется в разделе Forms вашего проекта с полями ровно такими, какими они пришли, а более позднее изменение формы никогда не перепишет уже полученную заявку. Агент тоже умеет их читать, так что можно попросить его собрать сводку.

  5. 5. С чем работает агент

    Эту часть можно не читать; она здесь, чтобы показать, что скрытых настроек нет. Каждый раз, когда агент объявляет, меняет или читает форму, он получает контракт целиком: правило для каждого поля, куда уходит заявка, что считается принятым, все причины отказа и как часто форму можно отправлять. Числа ниже — те, что этот экземпляр Birta реально применяет.

    Form contact ("Talk to us") — 5 fields
    1. name ("Name") — short text, required
       JSON string, at most 500 characters. Refused as missing_field, invalid_value, value_too_long.
    2. email ("Email") — email, required
       JSON string, matching /^[^\s@]+@[^\s@]+\.[^\s@]+$/, at most 254 characters. Refused as missing_field, invalid_value, value_too_long.
    3. topic ("What is it about?") — single choice, optional
       JSON string, one of: demo ("Product demo"), pricing ("Pricing"), support ("Support"). Matched exactly against the declared values, not against what the page displays. Refused as invalid_value, not_an_option.
    4. message ("Message") — long text, optional
       JSON string, at most 5000 characters. Refused as invalid_value, value_too_long.
    5. consent ("May we reply to you?") — consent, required
       JSON boolean, which has to be true — a required consent counts only as given. Refused as missing_field, invalid_value, consent_not_given.
    
    Submit: POST /_forms/contact on the site's own host — the standard address or a connected domain, whichever the visitor is on. Intake is public: no key, token, project id or absolute address belongs in the markup.
    Body: content-type application/json, a JSON object of these field keys and nothing else. An absent key, null, "" and [] all mean not filled in: a required field is refused, an optional one is simply left out of the lead. A submission is at most 65536 bytes. The page's own script sends it — a browser's native form submit posts form-encoded fields and is refused as invalid_body.
    Answers: 201 {"status":"accepted"}. A refusal is 400 (invalid_body, unknown_field, missing_field, invalid_value, not_an_option, value_too_long, value_out_of_range, value_too_precise, too_many_values, consent_not_given), 403 (preview_not_accepted), 404 (no_such_form), 413 (payload_too_large), 429 (too_many_submissions, project_busy), carrying {"error","code","field"} — branch on "code", never on the sentence.
    Limits: a visitor may send 5 submissions in 10 minutes (too_many_submissions), and the site takes 200 leads in an hour (project_busy). Every attempt spends the visitor's budget, refused ones included: resending a broken submission until it works runs into the limit.
    Live only: a version preview refuses every submission as preview_not_accepted — test intake on the published site. A declared form accepts as soon as the project has a published site; declaring or changing a form needs no re-publish.
    Keys: the form key and the field keys above are the contract, matched exactly. The text a visitor reads is yours to choose — renaming a label on the page changes nothing here.