水曜日, 6月 4, 2025
- Advertisment -
ホーム自動化Sansan vs AppSheet名刺管理アプリ!機能・コスト・使い勝手を徹底検証シュンサク瞬作

Sansan vs AppSheet名刺管理アプリ!機能・コスト・使い勝手を徹底検証シュンサク瞬作

🧠 概要:

概要

この記事では、名刺管理アプリ「AppSheet」と「Sansan」の機能、コスト、使い勝手を比較検討しています。特に、社内で名刺情報を効率的に共有し、営業活動をサポートするためのアプローチとして、AppSheetを用いた名刺管理アプリの開発方法とそのメリットを解説しています。

要約の箇条書き

  • 背景・目的: 名刺情報の共有不足による営業活動の効率化を目的とする。
  • AppSheetの機能:
    • 顧客情報と名刺情報の登録
    • 名刺画像のOCR機能によるデータ化
    • 商談管理の自動入力
    • デジタル名刺のQRコード生成
    • タグ管理機能による顧客の興味関心の可視化
  • コスト: AppSheetのCoreプランは月額10ドル(約1,500円)。Google Workspace契約で無料になる。
  • 比較:
    • データ化速度: Sansanは専用スキャナーで大量読み取り、AppSheetはスマホ手入力。
    • 機能の柔軟性: AppSheetは必要機能のみを組み合わせてコスト最適化が可能。
    • 情報アクセス: Sansanは多量の企業データにアクセス可能だが、AppSheetは自社の情報のみ。
  • 技術構成: AppSheet、Google Spreadsheet、OCR機能、Gemini API、QR code APIを利用。
  • 実装のポイント: スプレッドシートをデータベースとして設計し、OCRやAPIを活用した名刺情報の構造化。
  • テンプレート公開: 開発したアプリのテンプレートを利用可能。

Sansan vs AppSheet名刺管理アプリ!機能・コスト・使い勝手を徹底検証シュンサク瞬作

社内で名刺情報が共有されず、営業活動でバッティングが発生してしまう。私が顧客なら「あぁ…縦割りね」と思ってしまいます。

そこで、AppSheetで名刺管理アプリを開発してみました。既存サービスに劣らない性能ながら、費用も抑えられることがわかりました。

本では、AppSheet版名刺管理アプリの検証と作り方を解説していきます。役に立ったら❤を、わからないことはXのDMで質問してください。

AppSheet版名刺管理の使い方

企業情報の登録

まずは顧客情報の登録からです。+ボタンをタップすると、フォームが開くので、必要事項を入力します。

顧客情報の登録
顧客情報の登録

名刺情報の登録

企業情報の詳細ページから名刺を追加していきます。名刺追加ボタンをタップします。

企業の詳細ページから名刺を追加できる
企業の詳細ページから名刺を追加できる

名刺情報を登録するフォームが開きます。氏名などを直接入力してもよいですが、今回は名刺画像をアップロードします。スマホアプリから利用する際は、カメラ機能から名刺画像を直接取り込むことができます。

名刺画像をアップロードする
名刺画像をアップロードする

名刺画像をアップロードしてから10秒ほどで、氏名などが自動で記入されます。フォントの問題なのか、テキストがたまにうまく認識されないことがありますが、精度はかなり良く、きちんと認識してくれます。

名刺情報のページに商談追加ボタンがあるため、タップします。

名刺から抽出された情報。きちんと文字認識されている
名刺から抽出された情報。きちんと文字認識されている

名刺から抽出された商談相手(=氏名)や社名は自動入力されるので、商談内容を記入していきます。顧客課題や提案内容などを保存しておくと、引き継ぎが楽になります。

最近、Google Meetにも文字起こし機能が実装されました。議事録の要約を保存するようにすれば、入力が楽になりますね。

商談結果を入力していく

企業、商談相手(≒名刺)、商談内容のデータが揃いました。これで顧客ごとに商談の進捗状況を追えるようになりました。

顧客ごと、担当者ごとに商談を追跡できる
顧客ごと、担当者ごとに商談を追跡できる

ユーザー(社員)管理

社員ごとにデジタル名刺を発行できます。氏名やメールアドレス、電話番号をもとにQRコードが生成されるようになっており、スマホのカメラで読み込むことで、連絡先にサッと登録できます。

社員ごとにデジタル名刺(QRコード)を自動発行
社員ごとにデジタル名刺(QRコード)を自動発行

タグ管理

商談に”タグ”をつける機能も実装しました。顧客管理(CRM)などによくある機能ですね。商談内容のトピックをタグ付けすることで、顧客の興味・関心がどこにあるのかを可視化できます。

リスティング広告のキーワード出しにも使えると思います。意外なキーワードが案件につながっているかもしれません。

案件のトピックを可視化
案件のトピックを可視化

さらなる拡張も可能

現在の名刺管理は、単に名刺のデジタル化だけでなく、顧客管理(CRM)や営業支援(SFA)としての機能も持ち合わせています。名刺を顧客データベースとして活用することで、顧客獲得単価(CAC)や顧客単価を改善するためです。

AppSheetならば、そのような機能も後から付け足すことができます。

例えば、名刺にあるメールアドレスに対して新サービス等の告知をすることで、営業の機会を作り出したり、先方の担当者が昇格したタイミングでアプローチするといった手段が使えるようになります。

AppSheet版名刺管理の仕組み

AppSheet版名刺管理アプリの仕組み
名刺管理アプリの仕組み

基本的にすべてGoogle製品で構成されています。一部、QRコードの生成にQR code APIというサービスを利用させてもらっています。

💡アプリの構成
アプリUI:AppSheet
データベース:Spreadsheet
名刺画像認識:AppSheet OCR機能
外部連携:Google Apps Script
名刺テキストの構造化:Gemini API
デジタル名刺(QRコード)生成:QR code API

AppSheet版名刺管理の作り方

データベースを作成

まずはデータベースの作成からです。名刺管理アプリのデータ構成は以下のとおりです。名刺や商談データからユーザー(担当スタッフ)と顧客企業を参照する形になっています。

AppSheet版名刺管理アプリのデータ構成
名刺管理アプリのデータ構成

スプレッドシートにデータベースを作成していきます。エンティティ名(↑)をシート名(↓)に、属性名(↑)をカラム名(↓)に設定します。

エンティティ名(↑)をシート名(↓)に、属性名(↑)をカラム名(↓)に設定
エンティティ名(↑)をシート名(↓)に、属性名(↑)をカラム名(↓)に設定

データベースを作成したら、AppSheetの管理画面からデータベースを接続します。

Dataにある+ボタンから接続
Dataにある+ボタンから接続

顧客一覧ページの作成

顧客一覧ページの設定項目は以下のとおりです。顧客数が増えてくると見づらくなるので、業種・業態で分類しています。

顧客一覧の設定画面
顧客一覧の設定画面

以下のような見た目になります。

顧客一覧ページ
顧客一覧ページ

顧客企業をタップすると、各顧客の詳細ページへ行きますが、各企業に紐づく名刺や商談を下のようなタブ形式で整理したいと思います。

名刺や商談情報をタブ形式で整理
名刺や商談情報をタブ形式で整理

肝はdashboardビューの作成です。複数のビュー(アプリ画面)をタブ形式でまとめることができます。Positionはref(参照)にしておきましょう。

顧客詳細ページの設定画面
顧客詳細ページの設定画面

dashboardビューは、すでにあるビューをまとめるだけで、個々のビューを作成しなければなりません。

  • 基本情報

  • 名刺詳細

  • 商談詳細

今回作成した名刺管理アプリのテンプレートを置いておくので、上の3つの個別ビューの設定を確認してみてください。

続いて、顧客一覧ページから顧客の詳細ページへ遷移するアクションを作成します。LINKTOROW関数には、顧客IDと遷移先を設定します。遷移先は、さきほどのdashboardビュー(ビュー名:顧客情報)です。

LINKTOROW関数の式
⇓
LINKTOROW(キー, ビュー名)
ページ遷移のアクションを作成
ページ遷移のアクションを作成

「顧客一覧」ビューのEvent Actionsに、ページ遷移のアクション「顧客詳細の表示」をセットします。

Row Selectedにセットすることで、顧客企業をタップしたときに起動する
Row Selectedにセットすることで、顧客企業をタップしたときに起動する

名刺のデータ化機能の実装

この機能は、①名刺の画像データ⇒②OCR機能でテキスト化⇒③Gemini APIで構造化という流れで実装されます。

まずは①と②からやっていきましょう。データテーブル「名刺」には、以下のカラムが用意されています。

名刺情報を格納するカラム

card image frontとcard image backは文字通り、名刺の画像データを保存するカラムです。表と裏面をそれぞれ保存できます。

card text frontとcard text backは画像データからテキストを抜き出すカラムです。OCRTEXT関数が仕込まれています。

OCRTEXT([card image front])

結果は以下のように、すべてのテキストが抜き出されました。しかし、テキストの塊のままでは使い勝手が悪いです。メールアドレスや電話番号を個別に抽出した方が扱いやすそうですよね?

OCRTEXT関数で名刺画像からテキストを抽出
OCRTEXT関数で名刺画像からテキストを抽出

テキストからメールアドレスや電話番号だけを抜き出すのはGemini APIを利用します。処理は、AppSheet Automation⇒Google Apps Script(GAS)⇒Gemini APIの流れで呼び出しています。

AppSheet AutomationのRun a taskからGoogle Apps Script(GAS)を呼び出します。「Business Card AI」というのが、Google Apps Script(GAS)で作成したファイル名になります。

GASのファイルを呼び出し
GASのファイルを呼び出し

GASは、関数(Function)の集まりですから、Function Nameでどの関数を呼び出すのかを指定します。

Function Parametersは、いわゆる引数のことで、関数に渡す値(データ)のことです。今回は、名刺画像から抽出したテキスト(表面と裏面の両方)を渡しています。

Function Parametersの値:CONCATENATE([card text front], [card text back])

Return Valueは、GASから受け取る値です。Arrayとは配列のことで、リスト型の値を指定しています。

Return Valueの値:[部署, 役職, 氏名, メールアドレス, 電話番号]
関数へのインプットとアウトプットの形式を指定していく
関数へのインプットとアウトプットの形式を指定していく

Google Apps Script(GAS)のスクリプトについては、(長いので)本の末尾に添付しておきます。コピペして利用してください。

デジタル名刺の実装

従業員ごとのデジタル名刺(QRコード)の発行は、①社員情報をVCard形式に変換⇒②QR code APIでQRコードに変換の流れで実装します。

社員情報をQRコード化して、すぐに共有できるようにしたい
社員情報をQRコード化して、すぐに共有できるようにしたい

まずは社員情報をVCard形式に変換です。VCard形式とは、電子名刺として個人情報を共有するためのファイル形式で、結論、以下のようなデータになります。

BEGIN:VCARD
VERSION:3.0
FN:氏名
ORG:株式会社シュンサク
TEL;TYPE=WORK,VOICE:電話番号
EMAIL;TYPE=PREF,INTERNET:メールアドレス
END:VCARD

AppSheetにVirtual Columnを追加するための+ボタンがあるので、クリックします。Virtual Columnとは、スプレッドシートの関数のようなものと考えてください。

Virtual Columnを追加
Virtual Columnを追加

Virtual Columnの関数式は以下のとおりです(見栄えが悪いのは、改行を入れる必要があるため)。カラムタイプはLongTextにしてください。

例えば、[name]が従業員名に置き換わっていくので、各従業員ごとの電子名刺データがVCard形式で生成されます。

ちなみにConcatenate関数のConcatenateは連結するという意味で、テキストをつなげる関数です。

まず、VCard形式のデータを作成する
まず、VCard形式のデータを作成する

続いて、VCard形式のデータをQRコードに変換します。QRコードへの変換は、QR Code GeneratorというサービスがAPIを提供しているので、活用させてもらいましょう。

使い方は簡単で、”https://api.qrserver.com/v1/create-qr-code/?size=400×400&data=”の末尾に先ほどのVCard形式のデータを付け加えるだけです。

Virtual Columnを新規作成して、以下の関数を追加します。カラムタイプはImageです。

CONCATENATE(
  "https://api.qrserver.com/v1/create-qr-code/?size=400x400&data=", 
  ENCODEURL([電子名刺(VCard形式)])
)

ここに出てくるENCODEURL関数は、VCard形式をURLで利用する値に変換してくれる関数です。例えば、改行をURLに含めることはできないので、”%0D%0A”などの値に変換する必要があります。ENCODEURL関数はこの手の変換を請け負ってくれます。

まとめると、VCard形式のデータをAPIを通じてQR Code Generatorに送ると、QRコードの画像が返ってくるので、それをAppSheetアプリで表示しているというわけですね。

名刺管理アプリのテンプレート公開中

今回作成したアプリはテンプレート化して公開しています。ご自身のアカウントに複製してご利用ください。

名刺のデータ化機能は、Google Apps Scriptを連携させる必要があり、ご自身で行っていただく必要があります。

本の末尾にスクリプトを置いてあります。

既存サービスとの比較

名刺管理で有名なSansanと比較していきます。

名刺のデータ化

AppSheet版名刺管理アプリでも実現できます。

Sansanは専用のスキャナーで100枚5分の速度で読み取ることができるそうですが、AppSheetアプリにはそのような機能はないので、スマホで1枚1枚読み取る必要があります。

しかし、名刺の一括読み取りは頻繁に行う業務ではないので、みんなで手分けしてスキャンする、または過去にデータ化したものがあれば、直接データベースに移植することで対応できます。

デジタル名刺の作成

AppSheet版名刺管理アプリでも実現できます。

デジタル名刺(QRコード)をメールやZoomの背景に利用すれば、簡単にシェアできるため、Sansanと体験としてそこまで大きな差はないと思います。

メール配信機能

名刺からメールアドレスを抽出し、メールマーケティングにつなげる機能です。AppSheetにMailerLiteなどのサービスを連携することで実現可能です。

メール機能もSansanと大きな違いはないと言えるでしょう。

ノーコードの強みは、必要な機能だけを組み合わせることで、コストや柔軟性を最適化できる点です。

さまざまな機能が盛り込まれた高機能なサービスよりも、何かに特化したサービスを組み合わせる方が、使い勝手も利用料金もよくなる傾向があります(後発のメール配信サービスがいいと思ったら、乗り換えればいいわけですから)。

人事異動情報

部署や役職が変更になった際に通知する機能です。AppSheet版名刺管理アプリでも実現できます。

モバイルアプリのプッシュ通知やEメールで通知することができ、Sansanと同様のことができると思われます。

顧客企業のニュース配信

顧客のPR情報などをもとに、顧客企業の最新情報をキャッチアップできる機能です。

Sansanの社員が情報を探して、アップデート情報を配信しているのだとすれば、Sansanの方に軍配が上がると思います。

AI検索サービスが優秀になってきているので、商談前に検索をかけることで対応できる面もありますが、情報をリアルタイムで得ることは難しいです。

データ連携ソリューション

SalesforceやHubspotと連携できる機能です。AppSheetもSalesforceをデータソースとして扱えるので、Sansanと似たことはできそうです。

また、Sansan+顧客管理(CRM)+営業管理(SFA)を連携させると、利用料金がかなり高額になるはずです。(私であれば)顧客管理(CRM)+営業管理(SFA)もAppSheetで構築してしまいます。

企業データベースにアクセス

Sansanは、自社の名刺情報に加えて100万件を超える企業情報にもアクセスできます。新規顧客開拓に威力を発揮するサービスですが、AppSheetで実現はできません。

これは、全クライアントがアップロードした名刺情報を共有しているのか、Sansanが独自に集めているのかはわかりませんが、クラウド系サービスの強みが出ていますね。

AppSheet版名刺管理アプリでは、自社の名刺情報の共有までしかできません。

AppSheet版名刺管理の費用感

今回作成した名刺管理アプリは、AppSheetのCoreプラン(1アカウントあたり10ドル/月≒1,500円)の契約が必要です。

Google Workspaceを契約しても、AppSheetのCoreプランが無料でついてくるので、そちらを契約する方がおトクです。

AppSheetの料金プラン
AppSheetの料金プラン
Google Workspaceの料金プラン
Google Workspaceの料金プラン

ここだけは抑えて

背景・目的

アプリの主要機能

  • 企業情報・名刺情報の登録: 顧客情報と名刺データの管理

  • 名刺画像のデータ化: スマホカメラで撮影し、OCR機能でテキストを抽出

  • 商談管理: 名刺から商談相手や社名を自動入力し、商談内容を記録

  • デジタル名刺発行: 社員ごとにデジタル名刺(QRコード)を生成

  • タグ管理: 商談内容をタグ付けして顧客の興味関心を可視化

技術構成

  • アプリUI: AppSheet

  • データベース: Google Spreadsheet

  • 画像認識: AppSheet OCR機能

  • テキスト構造化: Gemini API(Google Apps Script経由)

  • QRコード生成: QR code API

既存サービス(Sansan)との比較

  • 実現可能: 名刺データ化、デジタル名刺作成、メール配信、人事異動通知、データ連携

  • 劣る点: 一括スキャン速度、顧客企業ニュース配信、企業データベースアクセス

  • 優位点: 必要な機能のみ組み合わせによるコスト最適化と柔軟性

費用

  • AppSheet Coreプラン: 月額10ドル(約1,500円)/アカウント

  • Google Workspaceを契約すればAppSheet Coreプランが無料で利用可能

実装のポイント

  • スプレッドシートでデータベース設計

  • OCRTEXTとGemini APIを組み合わせた名刺情報の構造化

  • VCard形式とQR APIを活用したデジタル名刺生成

  • 顧客詳細画面のタブ形式表示(dashboardビュー使用)

おまけ:GASのスクリプト


function businessCardTextToList(businessCardText) {

  
  const GOOGLE_API_KEY = PropertiesService.getScriptProperties().getProperty("GEMINI API KEY");
  
  const apiUrl = `https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=${GOOGLE_API_KEY}`;

  
  
  
  const payload = {
    contents: [
      {
        parts: [
          { text: "名刺情報(テキスト)から部署名、役職、氏名、メールアドレス、電話番号を抜き出して、JSON形式で出力してください。",},
          { text: `名刺情報:${businessCardText}`}
        ],
      },
    ],
    generationConfig: {
      
      responseMimeType: "application/json",
      
      responseSchema: {
        type: "ARRAY", 
        items: {
          type: "OBJECT", 
          properties: {
            
            company: {
              type: "STRING",
              nullable: true,
            },
            department: {
              type: "STRING",
              nullable: true,
            },
            role: {
              type: "STRING",
              nullable: true,
            },
            name: {
              type: "STRING",
              nullable: true,
            },
            email: {
              type: "STRING",
              nullable: true,
            },
            phone: {
              type: "STRING",
              nullable: true,
            }
          },
          
          propertyOrdering: ["department", "role", "name", "email", "phone", "company"],
        },
      },
    },
  };

  
  const options = {
    method: "post", 
    contentType: "application/json", 
    payload: JSON.stringify(payload), 
    muteHttpExceptions: true, 
  };

  
  const response = UrlFetchApp.fetch(apiUrl, options);

  
  const responseText = response.getContentText();

  const result = JSON.parse(responseText);
  
  if (result.candidates && result.candidates.length > 0 &&
      result.candidates[0].content && result.candidates[0].content.parts &&
      result.candidates[0].content.parts.length > 0) {
    const generatedText = result.candidates[0].content.parts[0].text;
    
    
    const businessCardItems = JSON.parse(generatedText);
    
    const businessCardItemsList = [
      businessCardItems[0].department,
      businessCardItems[0].role,
      businessCardItems[0].name,
      businessCardItems[0].email,
      businessCardItems[0].phone
    ]
    
    return businessCardItemsList;
  }
}

AppSheetアプリ開発の大枠を知りたい方👇️

AppSheetの活用事例を知りたい方👇️

AppSheetの他のサンプルを見たい方👇️



続きをみる


Views: 0

RELATED ARTICLES

返事を書く

あなたのコメントを入力してください。
ここにあなたの名前を入力してください

- Advertisment -