リアルタイムのリードアラート

リードがアクセスしてきたら、迅速に対応することが重要です。Twilioでは、SMS、メール、WhatsApp、音声によるリアルタイムのリード通知の設定が簡単に行え、商機を逃すことはありません。

Real estate agent receiving a lead alert SMS of a business opportunity for a new house bid.
Real estate agent receiving a lead alert SMS of a business opportunity for a new house bid.

Twilioでのリードアラートの仕組み

お客様のWebサーバースタック、アプリ、顧客データプラットフォームとTwilioのAPIを統合し、リード管理がシンプルになります。

ステップ1
リード創出ランディングページを設定する

機能的なフォームを持つランディングページを作成し、Webサイトリードの自動創出をトリガーし、メール、SMS、またはWhatsAppにより通知をリアルタイムに送信します。


ステップ2
CRMと統合する

リードデータを顧客関係管理(CRM)プラットフォームに接続し、リードの把握、リードデータの保存、重要な連絡先情報へのアクセスを可能にします。


ステップ3
Twilio APIを設定する

問い合わせ用ページから、適切な電話番号またはメールアドレスへとリードをルーティングするようTwilio APIを設定。名前、電話番号、問い合わせ先情報などのリードデータを転送します。


ステップ4
新しいリードがアクセスしてきたらアラートを通知する

SMS、WhatsApp、またはメール通知を利用し、リードのフォローアップに必要なすべての情報をチームに送信します。


ステップ5
リードをフォローアップ

オペレーターは、コミュニケーションに最適なチャネルで新しいリードをフォローアップできます。

Diagram of how lead alerts work with Twilio, integrating Twilio API with your CRM and setting it up with a functional form to send the lead alerts via email, SMS or WhatsApp.
Diagram of how lead alerts work with Twilio, integrating Twilio API with your CRM and setting it up with a functional form to send the lead alerts via email, SMS or WhatsApp.

リードアラートを組み込むためのTwilio製品

あらゆるチャネルにリードアラートを組み込み可能。数時間でソリューションを導入できます。

  • Twilio Programmable Messaging logo
    SMS

    テキストやMMSメッセージに、リードに関するカスタマイズされたデータを含めて、リードアラートを送信します。

  • Twilio WhatsApp Business API logo
    WhatsApp

    WhatsAppメッセージで新しいリードを受け取り、対応することができます。

  • Envelope
    メール

    1人または複数の受信者に、問い合わせの詳細情報を含むリアルタイムのリードアラートを送信します。

  • Twilio Programmable Voice logo
    Voice

    電話が望ましい場合は、自動発信によりリードアラートを配信します。

  • Twilio Task Router logo
    TaskRouter

    スキル、場所、空き状況に基づいて、適切なオペレーターや営業担当者にリードをインテリジェントにルーティングします。

Twilioリードアラートを今すぐ使い始めましょう

無料のTwilioアカウントにすぐにサインアップできます。Twilioの充実した開発者ツールを使用すれば、Twilioのクラス最高の通信APIによりサポートされたカスタムソリューションを構築でき、Webサイトのリードを逃すことはもうありません。

from lead_alerts import app
from flask import flash, redirect, render_template, request
from twilio.base.exceptions import TwilioRestException


from .services.twilio_service import TwilioService

@app.route('/')
def index():
    house = {
                'title': '555 Sunnybrook Lane',
                'price': '$349,999',
                'description':
                    'You and your family will love this charming home. ' +
                    'Featuring granite appliances, stainless steel windows, and ' +
                    'high efficiency dual mud rooms, this joint is loaded to the max. ' +
                    'Motivated sellers have priced for a quick sale, act now!'
            }
    return render_template('index.html', house=house)

@app.route('/notifications', methods=['POST'])
def create():
    house_title = request.form["house_title"]
    name = request.form["name"]
    phone = request.form["phone"]
    message = request.form["message"]

    twilio_service = TwilioService()

    formatted_message = build_message(house_title, name, phone, message)
    try:
        twilio_service.send_message(formatted_message)
        flash('Thanks! An agent will be contacting you shortly', 'success')
    except TwilioRestException as e:
        print(e)
        flash('Oops! There was an error. Please try again.', 'danger')

    return redirect('/')

def build_message(house_title, name, phone, message):
    template = 'New lead received for {}. Call {} at {}. Message {}'
    return template.format(house_title, name, phone, message)
using System.Web.Mvc;
using LeadAlerts.Web.Domain;
using LeadAlerts.Web.ViewModels;
using Vereyon.Web;
using System.Threading.Tasks;

namespace LeadAlerts.Web.Controllers
{
    public class NotificationsController : Controller
    {
        private readonly INotificationService _notificationService;

        public NotificationsController() : this(new NotificationService()) { }

        public NotificationsController(INotificationService notificationService)
        {
            _notificationService = notificationService;
        }

        // POST: Notifications/Create
        [HttpPost]
        public async Task<ActionResult> Create(Lead lead)
        {
            var message = await _notificationService.SendAsync(FormatMessage(lead));

            if (message.ErrorCode.HasValue)
            {
                FlashMessage.Danger("Oops! There was an error. Please try again.");
            }
            else
            {
                FlashMessage.Confirmation("Thanks! An agent will be contacting you shortly.");
            }

            return RedirectToAction("Index", "Home");
        }

        private static string FormatMessage(Lead lead)
        {
            return $"New lead received for {lead.HouseTitle}. Call {lead.Name} at {lead.Phone}. Message: {lead.Message}";
        }
    }
}
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

use Twilio\Rest\Client;

class NotificationsController extends Controller
{
    protected $client;

    public function __construct(Client $client)
    {
        $this->client = $client;
    }

    public function create(Request $request)
    {
        $houseTitle = $request->input('houseTitle');
        $name       = $request->input('name');
        $phone      = $request->input('phone');
        $message    = $request->input('message');

        $formattedMessage = $this->formatMessage($houseTitle, $name, $phone, $message);

        try {
            $this->sendMessage($formattedMessage);
            $request
                ->session()
                ->flash('success', 'Thanks! An agent will be contacting you shortly.');
        } catch (Exception $e) {
            echo $e->getMessage();
            $request
                ->session()
                ->flash('error', 'Oops! There was an error. Please try again.');
        }

        return redirect()->route('home');
    }

    private function sendMessage($message)
    {
        $twilioPhoneNumber = config('services.twilio')['twilioPhoneNumber'];
        $agentPhoneNumber = config('services.twilio')['agentPhoneNumber'];
        $this->client->messages->create(
            $agentPhoneNumber,
            array(
                'from' => $twilioPhoneNumber,
                'body' => $message
            )
        );
    }

    private function formatMessage($houseTitle, $name, $phone, $message)
    {
        return
            "New lead received for $houseTitle. " .
            "Call $name at $phone. " .
            "Message: $message";
    }
}
# frozen_string_literal: true

require 'message_sender'
class NotificationsController < ApplicationController
  def create
    MessageSender.send_message(message)
    redirect_to root_url,
      success: 'Thanks! An agent will be contacting you shortly.'
  rescue Twilio::REST::TwilioError => error
    p error.message
    redirect_to root_url,
      error: 'Oops! There was an error. Please try again.'
  end

  private

  def message
    "New lead received for #{params[:house_title]}. " \
    "Call #{params[:name]} at #{params[:phone]}. " \
    "Message: #{params[:message]}"
  end
end
package com.twilio.leadalerts;

import com.twilio.leadalerts.lib.MessageSender;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class NotificationsServlet extends HttpServlet {

    private final MessageSender messageSender;

    @SuppressWarnings("unused")
    public NotificationsServlet() {
        this(new MessageSender());
    }

    public NotificationsServlet(MessageSender messageSender) {
        this.messageSender = messageSender;
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        String houseTitle = request.getParameter("houseTitle");
        String name = request.getParameter("name");
        String phone = request.getParameter("phone");
        String message = request.getParameter("message");

        String formattedMessage = formatMessage(houseTitle, name, phone, message);
        try {
            messageSender.send(formattedMessage);
            request.setAttribute("success", "Thanks! An agent will be contacting you shortly.");
        } catch (Exception e) {
            e.printStackTrace();
            request.setAttribute("error", "Oops! There was an error. Please try again.");
        }

        request.getRequestDispatcher("home.jsp").forward(request, response);
    }


    private String formatMessage(String houseTitle, String name, String phone, String message) {
        return String.format("New lead received for %s. Call %s at %s. Message: %s",
                houseTitle, name, phone, message);
    }
}
const Twilio = require('twilio');
const config = require('../config');
const Express = require('express');


// Some hard-coded information about a house
var house = {
    title: '555 Sunnybrook Lane',
    price: '$349,999',
    description: 'You and your family will love this charming home. '
        + 'Featuring granite appliances, stainless steel windows, and '
        + 'high efficiency dual mud rooms, this joint is loaded to the max. '
        + 'Motivated sellers have priced for a quick sale, act now!'
};

// Map routes to controller functions
module.exports = function () {
    // Create an authenticated Twilio API client
    var client = new Twilio(config.accountSid, config.authToken);
    const router = Express.Router();

    // Render landing page
    router.get('/', function(request, response) {
        response.render('index', house);
    });

    // Send lead notification
    router.post('/leads', function(request, response) {
        // Assemble a text message body
        var message = 'New lead received for ' + house.title + '. Call '
            + request.body.name + ' at ' + request.body.phone + '. Message: "'
            + request.body.message + '"';

        // Send lead notification to agent
        client.messages.create({
            to: config.agentNumber,
            from: config.twilioNumber,
            body: message
        })
        .then(() => {
          // Otherwise, respond with 200 OK
          response.status(200).send('Lead notification was successfully sent.');
        })
        .catch((err) => {
          console.error(err);
          response.status(500).send();
        })
    });

    return router;
};

PythonとFlaskを使用したリードアラートの即時配信

Twilio Programmable SMSを使用し、PythonとFlaskアプリケーションにより新しいリードが検出されたときにメッセージを送信します。

Twilio SMS APIとPHPによりランディングページのリード通知アプリを作成

完全な機能を備えたPHPフォームによりランディングページを作成して「新しいリードを獲得しました」という通知をメールとSMSから送信し、より便利にご利用いただけます。

Programmable Messagingオンボーディングガイド

Programmable Messaging APIを設定すると、新しいリードを獲得したときに自動テキストメッセージを配信できます。

コードなしで進めたい?大丈夫です。

信頼できるTwilioパートナーの協力のもと、コーディングのサポートを受けたり、事前構築済みのソリューションを検討したりできます。

Work with Twilio Professional Services to set up global call tracking for your company
Work with Twilio Professional Services to set up global call tracking for your company

リードアラートにTwilioが選ばれる理由

Twilio APIは、リード通知の迅速かつ確実な配信をサポートし、お客様の技術スタックとシームレスに統合できます。

Build lead alerts with Twilio to handle multichannel notifications, increase conversion rates, respond to leads from anywhere and intelligently escalate hot leads.
Build lead alerts with Twilio to handle multichannel notifications, increase conversion rates, respond to leads from anywhere and intelligently escalate hot leads.

関連するユースケース


その他にも、Twilioにより様々なユースケースを構築できます

マーケティングとプロモーション

メール、SMS、MMS、WhatsApp、またはVoiceを、既存のマーケティング技術スタックに統合し、コンバージョンと顧客生涯価値を高めます。

ユーザー認証とID

オンボーディングとログインフローに2要素認証を追加し、顧客アカウントを安全に保ち、不正行為を防止します。

アラートと通知

マルチチャネルのアラートと通知を使用して、情報を提供し、顧客の関心を高め、行動を促します。