1. С 1 марта 2017 на форуме запущен платный закрытый раздел. Вся информация по сабжу ЗДЕСЬ

Сбор лидов в Google Docs

Тема в разделе "Лидогенерация (получение и передача заявок)", создана пользователем Виктор К, 23 ноя 2015.

  1. Виктор К

    Виктор К Активный участник

    Пол:
    Мужской
    Отправлять лиды с сайта на почту, а потом вбивать их вручную в эксель таблицу неспортивно.

    Поэтому мы будем сразу отправлять наши заявки в гугл таблицы.

    Будем использовать две таблицы:

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

    Всё это дело организовывается через Google Forms:

    1. Идем на google forms создаём две формы: одна для клиента, другая для нас

    2015-11-23 18-31-31 MFC - Google Формы - Mozilla Firefox.png

    2015-11-23 18-36-41 Рабочий стол.png

    2. Нажимаем на кнопку "Просмотреть ответы" и гуглдокс генерирует таблицу, в которую и будут попадать данные.

    Эту таблицу можно переименовать и переместить куда-нибудь, для удобства.

    2015-11-23 18-52-05 MFC - Google Формы - Mozilla Firefox.png

    Для второй формы проделываем то же самое.

    3. Теперь перейдём к настройке формы на нашем сайте.

    Добавляем PHP код, для захвата utm меток:

    Код:
    <?php
    $content = $_GET['utm_content'];
    $source = $_GET['utm_source'];
    $term = $_GET['utm_term'];
    $campaign = $_GET['utm_campaign'];
    $medium = $_GET['utm_medium'];
    ?>
    Сама форма будет выглядеть так:
    Код:
    <form role="form" action="send.php" method="post">
    <div class="form-group">
    <label for="exampleInputТеxt1">Имя </label><input type="text" name="fio" class="form-control" id="exampleInputТеxt1">
    </div>
    <br />
    <div class="form-group">
    <label for="exampleInputTex2">Телефон </label><input type="text" name="phone" class="form-control" id="exampleInputТеxt2">
    </div>
     
    <input type="hidden" name="utm_source" value="<?php echo $source; ?>">
    <input type="hidden" name="utm_medium" value="<?php echo $medium; ?>">
    <input type="hidden" name="utm_content" value="<?php echo $content; ?>">
    <input type="hidden" name="utm_term" value="<?php echo $term; ?>">
    <input type="hidden" name="utm_campaign" value="<?php echo $campaign; ?>">
     
    <button type="submit" name="submit" id="ss-submit" class="btn btn-danger btn-lg btn-block">Отправить</button>
    </form>
    4. Настройка отправки в гуглдокс

    За отправку ответственнен скрипт send.php , но сначала надо его настроить под созданные формы.

    Код:
    <?php
    // формируем запись в клиентскую таблицу google
    $url = "https://docs.google.com/forms/d/16H2sGtA193tQlfjwQPRM36Y5kxmjeW79WoUluIq4-EA/formResponse";
    $post_data = array (
    "entry.1847326634" => $_POST['fio'],
    "entry.171751711" => $_POST['phone'],
    "draftResponse" => "[,,&quot;-1723538935877907666&quot;]",
    "pageHistory" => "0",
    "fbzx" => "-1723538935877907666"
    );
     
    // направляем пользователя после отправки формы
    $link='upsell.php';
     
    // с помощью CURL заносим данные в клиентскую таблицу google
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    // указываем, что у нас POST запрос
    curl_setopt($ch, CURLOPT_POST, 1);
    // добавляем переменные
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
    //заполняем таблицу google
    $output = curl_exec($ch);
     
     
    // формируем запись в нашу таблицу google
    $url = "https://docs.google.com/forms/d/1rLbPxMPWas3vmL8W24Ss1-L5OGyVnjF6bkZ3lqlFKPI/formResponse";
    $post_data = array (
    "entry.868439053" => $_POST['fio'],
    "entry.368912726" => $_POST['phone'],
    "entry.1458717711" => $_POST['phone'],
    "entry.1548133943" => $_POST['utm_source'],
    "entry.2038282779" => $_POST['utm_medium'],
    "entry.1539768335" => $_POST['utm_content'],
    "entry.1989074943" => $_POST['utm_term'],
    "entry.342656428" => $_POST['utm_campaign'],  
    "draftResponse" => "[,,&quot;4741357912349863808;]",
    "pageHistory" => "0",
    "fbzx" => "4741357912349863808"
    );
     
    // с помощью CURL заносим данные в нашу таблицу google
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    // указываем, что у нас POST запрос
    curl_setopt($ch, CURLOPT_POST, 1);
    // добавляем переменные
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
    //заполняем таблицу google
    $output = curl_exec($ch);
     
    curl_close($ch);
    //перенаправляем браузер пользователя на апсел
    header('Location: '.$link);
    ?>
    Идем к нашим формам и нажимаем кнопку "Открыть форму"

    2015-11-23 19-01-57 MFC - Google Формы - Mozilla Firefox.png

    Заполняем форму, нажимаем отправить, получаем окно подтверждения отправки, откуда копируем урл:
    2015-11-23 19-07-19 Благодарим вас! - Mozilla Firefox.png

    И вставляем его в настройки первой формы внутри скрипта send.php (в переменную $url)
    2015-11-23 19-09-56 C  Users uf0log Desktop send.php • - Sublime Text (UNREGISTERED).png
    Далее, нужно открыть исходный код страницы содержащей форму и вытащить оттуда:

    Идентификаторы полей:

    • Имя
    • Телефон
    • draftResponse
    • fbzx
    code.png
    И подставить их в скрипт.

    В моём случае это выглядит так:

    2015-11-23 19-23-47 File Manager - Beget - Mozilla Firefox.png

    Настройка для первой таблицы готова, проделываем со второй всё то же самое и настройка завершена.

    Вот и всё :)

    Файлы из примера тут, можете попробовать у себя на хостинге.
    Тестовая форма тут
    Клиентская таблица тут
    UTM таблица тут

    З.Ы.

    Тому кто расскажет мне как в функци гугл таблиц =ImportRange автоматом менять адрес ячейки - буду благодарен :)
     

    Вложения:

    • mfc.zip
      Размер файла:
      2.1 КБ
      Просмотров:
      20
    Последнее редактирование: 23 ноя 2015
    • х10 лайк х10 лайк x 9
    • Нравится Нравится x 6
    • Дабллайк Дабллайк x 4
  2. Ромаша

    Ромаша Постоянец

    Пол:
    Мужской
    круто. ценно.
    спасибо за мануал.

    получается ты один расшариваешь для себя, другой для клиента? А звонки как чего?
     
  3. Виктор К

    Виктор К Активный участник

    Пол:
    Мужской
    Один и тот же лид пишется в разные таблицы, чтобы клиет не видел лишнего (зачем ему знать откуда я лью). Статус подтягивается из таблицы клиента.

    Со звонками сложнее, оптимально свой КЦ нанимать, имхо, как отслеживать по другому я хз, только на доверии если.

    В своём КЦ ещё плюс в том, что заявки не просираются, как это бывает, когда их посажена обрабатывать какая-нибудь девочка в офисе :)
     
    • Нравится Нравится x 1
  4. Ромаша

    Ромаша Постоянец

    Пол:
    Мужской
    а ты слушаешь звонки? их тоже в продаже лидов учитываешь или лид - это только заявка?

    статусы я так понимаю клиент проставляет?
     
  5. fizik

    fizik Постоянец

    Пол:
    Мужской
    Виктор, спасибо за ценную инструкцию! Подскажи, как автоматом перекидывать статусы заявок одной таблицы в другую?
     
  6. gromov

    gromov админ

    Пол:
    Мужской
    видимо, мы более спортивные, раз написали для этих приблуд свою мини-CRM, причем в двух форматах: база лидов под WP и отдельно корячим сейчас автономное решение, которое интегрируется вообще в любую страницу на любом движке, включая леднинги
    но вообще тема зачетная, Виктор у нас форумчанин месяца
     
    • Нравится Нравится x 1
  7. Виктор К

    Виктор К Активный участник

    Пол:
    Мужской
    У меня лидов немного, и работаю только со знакомыми пока, так что звоню сам, у меня скорее дропшиппинг модель такая )
    Статусы да, изначально лид палает с пустым статусом, клиент отзванивает и меняет его, в мою таблицу он подтягивается функцией importrange
     
  8. Виктор К

    Виктор К Активный участник

    Пол:
    Мужской
    Функция ImportRange, но мне не очень нравится такой способ, так как при протягивании ячейки номера ячееек в формуле не меняются автоматом.
    Если кто то знает способ лучше сообщите плиз)
     
  9. Виктор К

    Виктор К Активный участник

    Пол:
    Мужской
    Заделись :)
     
  10. Розалинда

    Розалинда Новичок

    Нашли лучше способ?
    Мне бы мануальчик, как и статусы ещё подтягивать.
    Заранее приогроменная благодарность :)
     
  11. Розалинда

    Розалинда Новичок

    сама разобралась :)
     
  12. Виктор К

    Виктор К Активный участник

    Пол:
    Мужской
    вот и хорошо)
     
  13. Frank

    Frank Новичок

    Пол:
    Мужской
    Решение огонь, как раз искал что-то подобное. Автору благодарность!
     
  14. Татарин

    Татарин Постоянец

    Пол:
    Мужской
    Вставляй такую формулу и всё заработает с протяжками:
    Код:
    =IFERROR(vlookup(A2;IMPORTRANGE("https://docs.google.com/spreadsheets/d/xxxxxxxxxxxxxxxxxx";"лиды!A2:L");12;false);)
    IFERROR - нужна, чтобы не показывало н/д, если значение не найдено.
    vlookup - ищет по уникальному значению. В качестве уникального берём первую колонку - Отметка времени. В примере "A2" - при протягивании формулы меняется на A3, A4 и т.д.
    диапазон A2:L - A2 первая ячейка, L - столбец, в котором у тебя статус заявки
    цифра 12 - номер столбца со статусом заявки
     
    • Нравится Нравится x 2
  15. Onsi

    Onsi Новичок

    Пол:
    Мужской
    Крутое решение!

    А как передать в таблицу данные из формы "Несколько из списка"?

    На странице делаю так:
    Код:
    <input type="checkbox" name="core" value="Core-1">Core-1<br>
    <input type="checkbox" name="core" value="Core-2">Core-2<br>
    <input type="checkbox" name="core" value="Core-2">Core-3<br>
    В send.php:
    Код:
    "entry.160450161" => $_POST['core'],
    Но в Гугл таблицу приходит только одно значение (последний чекбокс).
     
  16. iamincognito

    iamincognito Контент-генератор

    Пол:
    Мужской
  17. Onsi

    Onsi Новичок

    Пол:
    Мужской
    Добавил на страницу с формой код:
    Код:
    <?php
    if (count($_POST)) {
      header("Content-type: text/plain");
      $fp = fopen("php://input", "r");
      fpassthru($fp);
      fclose($fp);
      exit;
    }
    ?>
    Не работает.
    Я в пхп - 0. Можете подробнее объяснить - как реализовать?
     
  18. iamincognito

    iamincognito Контент-генератор

    Пол:
    Мужской
    Это же SO, там нужно читать не выборочно, а подряд, включая комментарии к вопросу и ответам :) В частности,
     
  19. Sidikey

    Sidikey Участник

    Пол:
    Мужской
    По поводу звонков можно использовать Calltouch или Call tracking, можно использовать что то оналогичное.)) Оно там стоит 3 коп.))
     
  20. Ромаша

    Ромаша Постоянец

    Пол:
    Мужской
    ябы не сказал, что
    эти системы стоят 3 коп.