Дополнение кода расширенными инструментами рабочего процесса

TL;DR

  1. Zapier отлично подходил для быстрого создания прототипа нашего решения по привлечению потенциальных клиентов в качестве стартапа на ранней стадии.
  2. У нас были некоторые проблемы с запутанной настройкой этого решения и неоптимальной обработкой ошибок и отчетами.
  3. В конечном итоге, вместо того, чтобы просто выбросить его полностью, мы взяли наиболее полезные и повторно используемые части Zapier и сохранили их при разработке нашего более индивидуального решения в облачной функции Firebase.

Вступление

Zapier позиционирует себя как альтернативу прямому взаимодействию с API и как способ подключения приложений без написания кода для сторонних разработчиков. Как стартап на ранней стадии, Zapier был прекрасным инструментом для создания прототипов наших маркетинговых инструментов. Мы использовали его, чтобы быстро создать для наших агентов индивидуальное решение по привлечению потенциальных клиентов, которое сосредоточено на автоответчиках, чтобы они могли немедленно начать развивать свой бизнес под нашим руководством.

Когда мы решили создать более стабильную версию нашего прототипа с Firebase, мы изначально предполагали, что Zapier будет полностью исключен из уравнения. Однако мы поняли, что Zapier имеет много преимуществ, помимо простого подключения приложений без написания кода. В конечном итоге мы решили создать гибридное приложение, которое сочетало бы в себе такие функции Zapier, как…

  • Прослушивание потенциальных клиентов
  • Форматирование, анализ, фильтрация и нормализация данных
  • Отправка данных в пользовательский веб-перехватчик функции Firebase
  • Помощь с тестированием

… С функцией Firebase HTTPS Cloud, которая будет выполнять всю логику приложения, а также отправку и извлечение данных, которые выполнял Zapier!

Основная функциональность и бизнес-логика решения перенесены в Firebase. Однако Zapier по-прежнему настолько полезен для нас, что мы подумали, что поделимся своей историей, чтобы другие разработчики могли увидеть, как его внедрение может принести пользу их проектам при использовании таким нестандартным способом.

Добавление в код расширенных инструментов рабочего процесса - это не отговорка, это разумно!

Наша оригинальная установка Zapier

Первоначально мы использовали Zapier, поскольку он предназначен для использования: за считанные часы мы сшили вместе несколько сервисов, используя пользовательский интерфейс Zapier, чтобы создать первый Zap для сбора и управления лидами.

Созданный нами инструмент сразу же имел успех, и некоторые из наших агентов быстро его приняли. Их отзывы привели к множеству улучшений в системе. Гибкость Zapier позволила быстро добавить или вынуть детали, не беспокоясь о том, что остальная часть системы может быть повреждена. Не было никакого давления в пользу принятия постоянных изменений из-за значительных предварительных вложений.

На этом этапе нашего бизнеса предполагаемые преимущества Zapier были очевидны: он быстрый, гибкий и простой.

Проблемы, с которыми мы столкнулись

Последующие изменения в Zaps в конечном итоге уменьшились, поскольку мы усовершенствовали систему автоответчика. Примерно в этот момент нам стали нужны стабильность, подотчетность и возможность многократного использования, а не скорость, гибкость и простота. В частности, было несколько проблем, которые побудили нас задуматься о том, чтобы отказаться от Zapier и создать нашу собственную систему с нуля:

  • Нам требовались более подробные отчеты об ошибках на каждом этапе процесса. В некоторых случаях Zapier сообщал, что шаг в Zap был успешным, потому что он установил контакт с приложением, не понимая, что ответ вернул ошибку сообщение.
  • Если Zap завершился ошибкой на каком-либо этапе (либо из-за неверных данных, либо из-за сбоя одного из подключенных приложений), Zap отключится на этом этапе и не попытается выполнить остальные шаги. В идеальной ситуации Zap постарается выполнить как можно больше шагов, прежде чем сдаться.
  • Настройка Zap с таким количеством шагов и интеграций для каждого агента была трудоемкой и подверженной человеческим ошибкам.

Решение

Что мы сохранили (и используем Zapier на данный момент):

Наши автоответчики Zaps, которые раньше состояли из 13+ шагов, теперь сокращены до 3-5 шагов. То, что Zap делает сейчас, по сути, состоит из трех этапов:

  1. Слушайте и получайте потенциальных клиентов
  2. Фильтровать, анализировать или форматировать данные о потенциальных клиентах, которые проходят
  3. POST данные на наш URL-адрес веб-перехватчика функции Firebase!

Несмотря на то, что мы не использовали Zapier по назначению (подключение приложений), мы все же получили много преимуществ от использования Zapier таким образом. Эти преимущества включают:

  • Прослушивание и запуск событий
  • Нормализация и фильтрация данных
  • Пользовательское поведение
  • Исчерпывающий список интеграции
  • Отчетность и аналитика - легко предоставляйте данные тем, кто в них нуждается
  • Простое формирование данных
  • Доступность для нетехнических членов команды
  • Помощь с тестированием. Нам не нужно было отправлять настоящие формы для тестирования, а расширение Zapier Chrome сделало отправку теста таким же простым, как нажатие кнопки в браузере.

Что мы взяли (и сейчас используем Firebase):

Команда Core Engineering в Side уже использует Firebase:

  1. В качестве базы данных использую RTDB и Firestore.
  2. Для размещения и запуска внутреннего кода, который запускается изменениями в базе данных или запросами HTTPS с использованием облачных функций.

Мы создали две облачные функции Firebase для обработки большей части того, что раньше делали старые Zap (подключение, отправка данных и получение данных из приложений / сервисов). Помимо соответствия функциональности предыдущей системы автоответчика Zapier, мы добавили некоторые улучшения:

  1. Интегрируйтесь с приложением Side Core, чтобы мы могли извлекать данные агента из базы данных Side в функции Firebase. В результате потребовался только один Zap для каждого канала, через который проходят потенциальные клиенты (например, Zillow, Realtor.com, форма веб-сайта). В этом примере нам понадобится только три Zap в новом решении по сравнению с 3 * n (где n = количество агентов) в старой реализации.
  2. Записывайте все «взаимодействия» в коллекцию в Firestore. С помощью этих данных мы можем идентифицировать прошлые лиды в других функциях и сообщать агенту контекст о лиде, когда они отвечают автоответчику. Мы также надеемся использовать эти данные в будущем для анализа наших маркетинговых усилий, чтобы мы могли продолжать оптимизировать результаты.
  3. Запишите журналы результатов каждого шага облачной функции Firebase (успех или сбой и контекст / сообщение об ошибке любого из них) в коллекцию в Firestore, а затем снова запишите эти результаты в таблицу Google. Строка записывается на лист каждый раз, когда появляется новый интерес, и если какой-либо шаг функции завершается неудачно, мы можем легко увидеть, где произошел сбой и почему он произошел.
  4. Мы структурировали наш JavaScript в облачной функции, поэтому теперь, если на каком-то шаге происходит сбой, он не останавливает всю функцию на этом этапе процесса. Сообщается об ошибке для шага, и предпринимается попытка следующего шага в процессе.

Заключение

Использование Zapier в сочетании с Firebase дало нам возможность создавать индивидуальные решения с улучшенными отчетами об ошибках, которые более интегрированы с базой данных нашей компании. Нам нравится, что он устранил некоторые из наиболее скучных и подверженных ошибкам частей кодирования. Эта установка оказалась настолько успешной, что в будущих проектах маркетинговой инженерии в Сиде, которые требуют прослушивания и нормализации данных, скорее всего, будет использоваться та же комбинация инструментов.

Состояние разработки программного обеспечения в 2018 году таково, что инструменты пользовательского интерфейса и код - это не два отдельных или противоположных пути, между которыми нужно выбирать, чтобы выполнить работу. При продуманном и целенаправленном использовании инструменты пользовательского интерфейса и код могут помочь инженерам сэкономить время и сосредоточиться на забавных и интересных частях разработки программного обеспечения.