Настройки синхронизации профиля
TimelyChurch Формы включают уникальную функцию синхронизации профиля, автоматически обновляющую записи Person в базе Участники, когда отправки содержат сопоставленные поля. В этой статье описаны три режима синхронизации и ручная синхронизация.
Что такое синхронизация профиля?
Когда вы сопоставляете поля формы с полями профиля Person, данные из формы могут записываться в соответствующую запись Person. Синхронизация профиля контролирует когда происходит запись.
Настройка режима синхронизации
- Откройте форму в редакторе.
- Перейдите на вкладку Настройки.
- Прокрутите до раздела Profile Sync Mode.
- Выберите один из трёх вариантов ниже.
- Нажмите Save Settings.
Для разработчиков / пользователей API: эта настройка хранится в JSON-столбце
settingsформы под ключомperson_sync_mode. Допустимые значения:on_submit(по умолчанию, если не задано),on_approveиdisabled. Модель предоставляет доступ через аксессорperson_sync_modeвApp\Models\Form.
Варианты режима синхронизации
При отправке (по умолчанию)
Когда синхронизируется: сразу при отправке формы.
Режим по умолчанию. Как только человек отправляет форму, сопоставленные поля синхронизируются с профилем Person сразу. Подходит для форм, где вы доверяете данным и хотите мгновенных обновлений.
Лучше всего для:
- Контактных форм и карточек посетителей
- Форм обновления профиля существующих участников
- Простых регистрационных форм
Как это работает:
- Человек отправляет форму.
- TimelyChurch определяет или создаёт запись Person.
- Значения сопоставленных полей сразу записываются в Person.
- Отправка сохраняется со статусом «Ожидает» (всё ещё можно просмотреть).
Примечание: даже при немедленной синхронизации отправка попадает в очередь одобрения со статусом «Ожидает». Вы по-прежнему можете просматривать и отклонять отправки — но данные профиля уже обновлены.
При одобрении
Когда синхронизируется: только после одобрения отправки администратором.
В этом режиме данные не записываются в профиль Person, пока администратор явно не одобрит отправку. Вы можете проверить данные до попадания в записи участников.
Лучше всего для:
- Заявок волонтёров (проверка перед добавлением в записи)
- Форм, где критична точность данных
- Регистрационных форм с проверкой
Как это работает:
- Человек отправляет форму.
- TimelyChurch определяет или создаёт запись Person.
- Сопоставленные поля пока не синхронизируются.
- Администратор просматривает отправку и нажимает Одобрить.
- При одобрении значения сопоставленных полей синхронизируются с Person.
- Администратор видит подтверждение с числом синхронизированных полей.
Совет: при отклонении отправки данные в профиль Person никогда не синхронизируются.
Отключено
Когда синхронизируется: никогда (автоматическая синхронизация выключена).
Отправки собираются и хранятся, но сопоставленные поля никогда не записываются в профили Person автоматически. Вы по-прежнему можете синхронизировать вручную для отдельных отправок.
Лучше всего для:
- Опросов, где ответы только для анализа
- Форм с данными, которые не должны обновлять профили
- Ситуаций, когда нужен полный ручной контроль
Кнопка ручной синхронизации
Независимо от режима синхронизации администраторы всегда могут запустить синхронизацию вручную для любой отправки:
- Перейдите на страницу деталей отправки.
- Если у отправки есть связанный Person и сопоставленные поля, доступна кнопка Sync to Profile.
- Нажмите Sync to Profile, чтобы передать сопоставленные данные в Person.
- Подтверждение покажет, сколько полей синхронизировано.
Если профиль уже актуален (все сопоставленные поля совпадают), вы увидите: «No new fields to sync -- profile is already up to date.»
Примечание: ручная синхронизация соблюдает те же правила безопасности: поля идентичности (имя, фамилия, email) не перезаписываются в существующих записях, и по умолчанию заполняются только пустые поля.
Правила безопасности синхронизации
Независимо от режима всегда действуют следующие правила:
| Правило | Описание |
|---|---|
| Защита идентичности | first_name, last_name и email никогда не перезаписываются в существующих записях Person. Устанавливаются только при создании нового Person. |
| Режим только заполнения | По умолчанию синхронизация заполняет только пустые поля в Person. Существующие значения не перезаписываются. |
| Изоляция церкви | Синхронизация проверяет, что отправка и Person принадлежат одной церкви. Межцерковная синхронизация блокируется. |
| Санитизация данных | Все синхронизируемые значения очищаются: HTML удаляется, email и даты валидируются, длина строк ограничена 255 символами. |
| Отслеживание синхронизации | Каждая отправка фиксирует метку времени person_synced_at, чтобы видеть, когда данные последний раз синхронизировались. |
Проверка статуса синхронизации
На странице деталей отправки видно:
- Связана ли отправка с записью Person
- Был ли создан новый Person из этой отправки
- Метку времени синхронизации (если синхронизировано)
- Число полей, обновлённых при последней синхронизации
Часто задаваемые вопросы
В: Что если человек отправил форму без входа и не указал email? О: Если система не может определить или создать Person (нет email и имени), отправка сохраняется без связанного Person. Синхронизация не выполняется, но данные доступны в отправке.
В: Можно ли изменить режим синхронизации после сбора отправок? О: Да. Изменение режима влияет только на будущие отправки и будущие действия одобрения. Уже синхронизированные отправки не затрагиваются.
В: Что если одобрить отправку, уже синхронизированную при отправке? О: Если отправка уже синхронизирована (например, режим был «При отправке»), повторная синхронизация при одобрении не выполняется. Система проверяет, была ли отправка уже синхронизирована, и пропускает дубликаты.