Моар Автоматизация в DevRel — Построение системы отчетов о поездках

TL;DR Я создал список приоритетных событий и логику оценки, и теперь нам нужно также создавать отчеты и использовать эту обратную связь для расширенной оценки. Вот что я хочу создать: базу данных отчетов о поездках, подключенную к нашей базе данных событий, механизм сбора данных, а также стандартизированную оценку. Вы можете создать нечто подобное сами. Вот строительные леса.

Зачем мне нужна система отчетов о поездках?

Основная идея отчетов о поездках и то, почему мы хотим собирать их в базе данных, заключается в том, чтобы

  • собирать отзывы, пока они еще свежие,
  • использовать стандартизированную матрицу,
  • агрегировать несколько оценок, если таковые имеются,
  • проанализировать и сравнить данные, т.е. оценить поездку,
  • принять обоснованное решение для будущих поездок.

Какие инструменты следует использовать?

Вы можете использовать все, что угодно. Список Excel, Notion, SQL Server, Salesforce. Что угодно.
Самым простым и автоматизируемым подходом для нас было использование AirTable и его встроенных форм для сбора данных. В основном потому, что у нас уже есть список приоритетных событий в AirTable, а также мы многое автоматизировали с помощью отличного API AirTable и Postman Monitors. Мы можем получать доступ и изменять любые данные в нашей «Базе», а также использовать такие вещи, как веб-крючки. А когда инструментов в нашем поясе недостаточно, всегда есть Zapier, как в этом примере, где я создал бота для Slack, который ищет события в AirTable через сравнение URL.
Когда вы используете формы AirTable, вы можете искать записи в одной базе, например, человек может выбрать себя из списка, так что вновь созданная запись будет напрямую сопоставлена с уникальным человеком. То же самое касается событий, к которым будет относиться отчет о поездке. Это то, что я пока не смог реализовать с помощью других инструментов опроса, таких как TypeForm. Мне нравится поток и оптика TypeForm гораздо больше, чем формы AirTable, но когда дело доходит до функциональности, то, как говорится, форма следует за функцией.

Какую обратную связь я должен собрать?

Изначально я думал, что это будет касаться только сторонников разработчиков, поскольку именно они ходят на конференции, выступают там, общаются с посетителями и обслуживают стенд. Но после некоторых социальных опросов в Twitter я понял, что это должно быть более полезно.

Ян стоит с 🇺🇦
@jansche
Привет, друзья!
Я создаю структуру отчетов о поездках для DevRel в @getpostman. О чем вы сообщаете команде с мероприятий (цифровых, личных, гибридных)?
Также думаю о том, чтобы выразить это словами для @ThePracticalDev. Так что поставьте лайк, если думаете, что прочитали бы это.
13:55 PM — 16 мая 2022 г.

Люди в основном комментировали, что нам нужно больше, чем цифры, «было 3/5 на месте» просто не достаточно. Они также отметили, что для составления рекомендации на следующий год, мы также должны отметить, как прошло сотрудничество с организаторами.

Я знал, что это будет компромисс. Мы хотим получить отзывы как можно более объективные, в стандартной схеме рейтинга, с участием как можно большего количества голосов из как можно большего количества ролей, и при этом услышать индивидуальные мнения в свободной форме? Не говоря уже о том, что он не должен быть раздутым, так как никто не любит заполнять опросы. Уф.

Компромисс

Вот поля, которые мы собираем в настоящее время. Не все из них должны быть заполнены каждым респондентом (например, «Бюджетные обязательства» или «Регистранты»). Затем некоторые из нас любят писать подведение итогов в нашей вики.

  • Имя докладчика (селектор из Lookup)
  • Тип мероприятия (конференция или встреча)
  • Название мероприятия (выбирается из поиска)
  • Выделенный бюджет (количество)
  • # Количество точек контакта (количество)
  • # Посетителей (количество)
  • # регистраций (число)
  • Д/Н Конкурс на сайте (булево)
  • Д/Н Сбор отзывов о продукции (булево)
  • 1-5 Эффективность сувениров (шкала)
  • 1-5 Созданные новые отношения (шкала)
  • 1-5 Социальная вовлеченность (шкала)
  • 1-5 Хороший опыт (шкала)
  • # Количество созданных партнерств (число)
  • Ссылка на полный отчет, если есть (url)
  • Y/N индивидуальная рекомендация (булево)
  • комментарии (длинный текст)

Часть автоматизации

Для принятия взвешенных решений о повторном участии в мероприятии в следующий раз нам нужно преобразовать эти ответы в цифры. Или одно число (оценка) и среднее значение «Да/Нет» (рекомендация). Давайте сделаем это на AirTable, вот пример того, как можно создать эту оценку для записи отчета о поездке:

console.log(`Starting assessment on ${base.name}.`);
// change these names to pick a view:
let table = base.getTable('Trip Reports');
let view = table.getView('DATA COMPLETE');
let result = await view.selectRecordsAsync();
let score;

for (let record of result.records) {
    // change the field names here to adapt this script to your base

    let costPerLead = 0;
    let footTraffic = "low";
    let competitiveIntel = false;
    let productFeedback = false;
    let swagEffectiveness = "low";
    let relationshipsBuilt = "low";
    let twitterEngagement = "low";
    let numPartnershipsFormed = 0;
    let numOps = 0;
    let goodExperience = "low";

    score = 0;

    if (record.getCellValue('Foot Traffic')) footTraffic = record.getCellValue('Foot Traffic').name;
    if (footTraffic == "high") score += 15;
    else if (footTraffic == "medium") score += 10;
    else score += 5;

    if (record.getCellValue('Competitive Intel')) competitiveIntel = record.getCellValue('Competitive Intel');
    if (competitiveIntel) score += 8;
    else score += 0;

    if (record.getCellValue('Product Feedback')) productFeedback = record.getCellValue('Product Feedback');
    if (productFeedback) score += 8;
    else score += 0;

    if (record.getCellValue('Swag Effectiveness')) swagEffectiveness = record.getCellValue('Swag Effectiveness').name;
    if (swagEffectiveness == "high") score += 0;
    else if (swagEffectiveness == "medium") score += 0;
    else score += 0;

    if (record.getCellValue('Relationships Built')) relationshipsBuilt = record.getCellValue('Relationships Built').name;
    if (relationshipsBuilt == "high") score += 15;
    else if (relationshipsBuilt == "medium") score += 10;
    else score += 0;

    if (record.getCellValue('Twitter Engagement')) twitterEngagement = record.getCellValue('Twitter Engagement').name;
    if (twitterEngagement == "high") score += 2;
    else if (twitterEngagement == "medium") score += 1;
    else score += 0;

    if (record.getCellValue('Good Experience')) goodExperience = record.getCellValue('Good Experience').name;
    if (goodExperience == "high") score += 2;
    else if (goodExperience == "medium") score += 1;
    else score += 0;


    await table.updateRecordAsync(record, {
        'Score': score,
    }); 
Войти в полноэкранный режим Выйти из полноэкранного режима

Это копирование/вставка/удаление, поэтому ожидайте, что этот код не будет работать как есть. Он должен просто продемонстрировать, что мы делаем, чтобы получить сопоставимые цифры.

Как только вы получите эту оценку из нескольких отчетов о поездках, вы можете рассчитать среднее значение или медиану, чтобы ввести ее в вашу основную базу данных событий. И вуаля, имея эту сгенерированную оценку на главной записи, она может быть использована для принятия решений с помощью БОЛЬШИХ АВТОМАТИЗАЦИЙ!

Оставайтесь в безопасности, друзья, и дайте мне знать, что вы делаете для автоматизации в комментариях ниже. <3

Оцените статью
Procodings.ru
Добавить комментарий