見出し画像

データ入力を容易にするUPWARDの滞在検知技術

こんにちは。UPWARD CTOの門畑です。今回はシニアエンジニアの伊野が主担当で開発を推進しているiOSで滞在検知を実現している方法を紹介します。滞在検知とは、セールスパーソンの訪問活動を自動的に検知する機能であり、以下の通り特許を取得したUPWARDのコア技術の一つとなります。
https://www.upward.jp/info/20211029

滞在検知の目的

先日投稿したブログにもあるように営業活動の記録をなぜ行わないかを調査したところ、理由のトップがデータの入力に手間がかかることが原因でした。https://note.com/saas_technology/n/ndd1e5d8cc634

この課題に対して、UPWARDではデータ入力を容易/自動化できる技術の研究開発をしています。その一つである滞在検知技術により、訪問先と日時を検知できればCRMから訪問先レコードの探索や日時入力の手間を削減することができます。

前提条件

訪問先となる取引先等の情報が住所とともにCRMへ入力済みであることが滞在検知するうえでの前提条件となります。機能実現のためには訪問先の緯度と経度が必要となりますが、住所情報があれば先日紹介したUPWARD ENGINEのジオコーディング技術を用いることでデータベースに格納が可能です。

https://note.com/saas_technology/n/nff299226ea0b

滞在検知のアプローチ

iOSでは位置情報を取得することができますが、滞在検知に必要十分な程度に抑え、高頻度で取得し続けることは避ける方針としました。この理由はバッテリーの持ちに大きく寄与する他、セールスパーソンの行動を逐次監視をしたくないという思いもありました。

次に、iOS上で利用可能で位置の取得頻度を抑えた方法として検討対象となった手段は、CLVisit、Significant Location Changes、ジオフェンスの3つの方法です (図1)。

図1. 滞在検知のアプローチ

CLVisitは任意の地点で滞在を検知することが可能である一方で、リアルタイムで取得できないことがあり、また取得が数分先に遅延するという特徴があります。Significant Location Changesは位置変化を検知することが可能である一方で、最低でも数百m以上は移動しないと検知されず、また検知された座標が滞在場所とは限らないという特徴があります。従って、移動を検知する方法としては有効ですが、滞在検知としては使いづらい方法となります。ジオフェンスは住所情報に予め円形状のエリアを設定し、そのエリアへの進入と離脱を検知可能であり、概ね数秒から数十秒で反応できるのが特徴です。ただし、住所情報と緯度・経度情報を保有しておくことが必要となります。また、iOSのジオフェンスでは一度に20個しか展開できないという制限があります。

これらの3つの方法において、UPWARDではジオコーディング技術を保有していることから、時間的・空間的分解能が共に比較的高いジオフェンスを採用することにしました。あとは、iOSにおけるジオフェンスの制限の解決が必要です。

ジオフェンスの動的展開

訪問活動を行うような組織において、訪問対象となる地点が20箇所以下であることは稀です。また、1ユーザに限定して考えたとしても、一人で20件以上の顧客を担当するケースは特に珍しくはありません。従って、iOSのジオフェンスでは、対象となりうる全ての訪問先に予めジオフェンスを設置していたのでは数が足らなくなるという課題がありました。予め「その日の訪問先を利用者に選んでもらう」といった対応も本末転倒です。

ところで、そもそも全ての訪問先候補に対してジオフェンスを設置する必要はあるのでしょうか。例えば、一日中東京で行動しているセールスパーソンにとっては、北海道の訪問先にジオフェンスが設置されていても意味がありません。つまり、現時点におけるセールスパーソンの周囲にある訪問先へだけジオフェンスが設置されていれば用が足ります。そのためには、近くの訪問先へ動的にジオフェンスを設置する必要があります。次の2段階のアプローチを検討しました。

①利用者の近くの訪問先にジオフェンスを設置

まず必要なのは利用者の現在地です。最新のスマホの機能を用いれば端末の位置を取得するのは容易です。これを利用者の現在地として使うことにします。次に必要なのは、任意の座標に対して近い順にソートされた訪問先の座標です。

ここでジオコーディングが登場します。我々のサービスでは、CRM上の訪問先の住所情報に対してあらかじめジオコーディングを行い、対応する座標を用意しておきます。その上で、サーバがモバイルアプリからのリクエストに応じて距離の近い訪問先レコードをCRMから取得し返却します。後は取得したレコードの座標へジオフェンスを設置することで、この課題を解決しました。

②利用者の移動に応じてジオフェンスを更新

次に、利用者が移動するたびに①の処理を繰り返しジオフェンスを更新していきます。ただし、そのために高頻度で端末位置を取得するとなるとバッテリーは大幅に消費してしまいます。そこで先ほど紹介したSignificant Location Changesが再登場します (図2)。

図2. ジオフェンス・Significant Location Changesとを組み合わせた滞在検知

位置変化を検知することができれば、適切なタイミングでジオフェンスの更新が可能になります。 もちろんこの方法だと短距離の移動には対応できませんが、その程度の移動でジオフェンスの更新が必要となるケースは稀と考えています。

以上の方法により、利用者の移動に合わせて近傍の訪問先へジオフェンスが設置された状態が保たれ、訪問活動の自動検知が実現されています。

まとめ

我々のサービスにおける滞在検知の意義とその実現方法の概要について説明しました。ジオフェンスを中心に様々な技術を組み合わせて滞在検知を実現しており、これが活動報告の容易化へとつながっています。

さいごに

UPWARDでは採用を以下の通り積極的に行っております。

部門問わず、少しでもUPWARDにご興味いただいた方は、まずはカジュアルにwebでお話しすることも可能ですので、ぜひコンタクトをお待ちしております。
つながり申請もお待ちしております。
Linkedin
twitter

この記事が気に入ったらサポートをしてみませんか?