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

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

クレジットカード不要 | すぐに開始可能 | Twilio全製品にアクセス

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.

リードアラートを組み込むための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

リードアラートに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.

関連するユースケース


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

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

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

ユーザー認証とID

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

アラートと通知

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