名刺管理の現状と課題を一見!

「いただいた名刺がどこにあるのか分からず、連絡が遅れてしまった…」
「山積みの名刺を前に、整理する時間も気力もない…」
「必要な名刺を探して、会議中に焦ったことがある…」

こんなシーン、思い当たりませんか?

名刺管理を効率化することで、商談や顧客対応のスムーズさが向上し、業績の向上にもつながります。この記事では、Dify生成AINotionSlackを組み合わせた、無料で始められる名刺管理ワークフローを提案いたします。

ぜひお試しください!

名刺管理の現状とOCR活用による改善策!

現在、多くの企業では名刺管理が手作業で行われており、効率的な運用が難しい状況です。以下は、一般的に使用されているフローです。

従来の名刺管理フロー

名刺情報の受け取り

未加工情報の手作業入力

③ 入力した情報を整理し、Excelや共有フォルダに保存

OCRを活用した改善点

① 情報の自動抽出
Dify を活用し、名刺情報を迅速かつ正確に抽出

② データの効率的保存
・抽出した情報をNotionまたはAWS RDSに効率的に保存

③ シームレスなシステム連携
・Slackを通じてシステムと簡単に連携。将来的にアプリやウェブにも対応可能

④ コスト効率の良い処理
・処理ロジックはAWS Lambdaを利用して、コスト効率よく実行

⑤ 柔軟な項目調整
・抽出項目はNotionで簡単に設定・調整でき、柔軟に対応可能

名刺管理システムのご紹介

上記の改善点を踏まえ、OCRを活用した名刺管理システムの詳細な機能をご説明いたします。

まずは、主要な機能は以下の通りです。

  • 名刺データの受信
  • OCR(Dify)でデータを読み取る
  • データをシステムに登録
  • 決まった時間内でデータを取得
【事前準備】
開始する前に、DifyのOCRを使用した名刺データ抽出用テンプレートをダウンロードしてください。

名刺データを受け取り、システムに取り込む

CEOやSalesから受け取った名刺情報をシステムに取り込みます。主な流れは以下の通りです:

  1. 名刺データをSlack経由で受け取る
  2. 受け取ったファイルをGoogle DriveまたはSlackからS3に保存
  3. LambdaがS3からファイルを取得し、Difyに送信
  4. 名刺情報を抽出し、RDSデータベースに記録
  5. CSV形式で情報をSlackに返送

データ活用の可能性を広げる!

処理済みデータをデータベースに保存することで、さらなる機能の展開が可能です。今回は以下の2つのアプローチをご紹介します。

① Notion 対応版

・「決まった時間内でのデータ取得機能」をNotion公開のみをサポートする形で実装した形式。

② SlackとGoogle Drive 活用版

・SlackとGoogle Driveを組み合わせた形式(内部利用向けバージョン)。

ツールの準備

① Dify AI

  • 概要:Difyは、AIアプリケーションの作成と管理を簡単に行えるプラットフォームです。
  • 準備:クラウド版 Dify のアカウントを作成してください。

② Notion

  • 概要:Notionは、柔軟で直感的な情報管理ツールです。
  • 準備:Notionのアカウントを作成してください。

Notionの準備

■ インテグレーション作成とAPIシークレットキーの取得

① 以下のリンクにアクセスします

・Notionのインテグレーション(外部ツールやサービスとの連携)https://www.notion.so/profile/integrations

② 画面右上の「新しいインテグレーション」(New Integration)をクリックします

③「関連ワークスペース」を選び、「種類」を「内部」に設定後、「保存」をクリックします

このキーはDifyとNotionを接続するために必要ですので、安全に保存してください

■ 名刺管理用データベースの作成

① 作成したNotionワークスペースに戻り、「ページを追加」をクリックします

② 「テーブル」を選択して、新しいテーブルを作成します

必要なカラム(例: テキスト、URL、メール)を追加します。他のフィールドが必要な場合はDifyの設定セクションを参照してください

③ 作成したテーブルで「ビューのリンクをコピー」(Copy link)をクリックします

コピーしたリンクの「DATABASE_ID」を控えておいてください。後でDifyとの接続に使用します。

リンクの形式例: https://www.notion.so/<DATABASE_ID>?v=XXX&pvs=4

■ Notionの接続設定

「接続先」(Connections)をクリックします

先ほど作成したインテグレーション(Dify Card)を選んでください。

これでNotionの設定が完了しました!次はDify AIの設定に進みます。

Dify AIの準備

■ Dify ワークフローのセットアップ

概要:Difyを活用したワークフローのテンプレートや設定ファイルが含まれたリソースです。

目的:ワークフロー構築・運用のガイドラインとして、テンプレートを活用して効率的にセットアップできます。

アクション:以下のリンクからファイルをダウンロードしてご利用ください。

Dify ワークフローのテンプレート

この準備を完了すれば、ワークフローをスムーズに進めることができます。

ワークフローの初期設定

Difyでワークフローをインポート

ダウンロードしたファイルをDifyで開き、「DSLファイルをインポート」を選択して、ワークフロー設定ファイルをインポートしてください。

② LLM APIキーの設定

Difyの右上メニューから「設定」(Settings)を選び、「モデルプロバイダー」(Model Provider)に進んで、OpenAIのセットアップを行ってください。他のLLMを使用することも可能です。

③ 環境変数の設定

  • NOTION_DB_ID: 作成した名刺管理「DATABASE_ID
  • NOTION_SECRET_KEY: Notionで設定したAPIのシークレットキー
  • NOTION_VERSION: 2022-06-28

④ 機能設定

ワークフローで名刺の画像をアップロードするには、「機能」(Features)セクションで「画像アップロード」(File Upload)をオンにしてください。

⑤ ワークフロー公開 → 埋め込むコンポーネント

すべてのステップが完了したら、「アップデート」(Update)をクリックしてワークフローを公開します。公開後、「ウェブサイトに埋め込む」(Embed on Website)をクリックします。表示されたiframeコードをコピーしてください。

⑥ 埋め込むコンポーネントの導入

Notionに戻り、結果管理の新しいページを作成します。

  • ページのコンテンツ部分に「/embed」と入力し、コピーしたiframeコードをペーストします

画面に表示されれば、設定完了!

これでワークフローが使用可能になります!

■ ワークフロー設計・構築ガイド

このセクションでは、Difyワークフローの各部分について詳しく説明します。

ワークフローの入力には、以下の情報が含まれます:

  • タグ:ユーザーが名刺情報に追加したいタグやラベル

① フィールド設定

この部分では、Notionで定義されたフィールド情報を取得し、それをLLMに送信します。これにより、入力データが適切に処理され、正確に分類されます。

HTTPリクエストのブロック機能

② 名刺情報の解析

名刺の内容を解析し、Notionで指定されたフィールドに基づいて必要なデータを抽出します。このプロセスでは、プロンプト設計が重要で、精度の高いデータ抽出が可能になります。詳細なプロンプトは、ワークフロー設定で確認できます。

③ 抽出結果の保存

抽出したデータは、Notion APIが要求するJSON形式に変換して、保存します。この変換は「テンプレート」ツールを使って行います。以下はそのテンプレートの例です。

{
    "parent": { 
        "database_id": "{{ NOTION_DB_ID }}" 
    },
    "properties": {
        {% for field, value in data.items() %}
        "{{ field }}": 
        {% if attributes.get(field).type == "title" %}
        { 
            "title": [{ 
                "text": { 
                    "content": "{{ value }}" 
                } 
            }] 
        }
        {% elif attributes.get(field).type == "email" %}
        { 
            "email": {% if value %}"{{ value }}"{% else %}null{% endif %} 
        }
        {% elif attributes.get(field).type == "url" %}
        { 
            "url": {% if value %}"{{ value }}"{% else %}null{% endif %} 
        }
        {% else %}
        { 
            "rich_text": [{ 
                "text": { 
                    "content": "{{ value }}" 
                } 
            }] 
        }
        {% endif %}
        {% if not loop.last %},{% endif %}
        {% endfor %}
    }
}

このテンプレートは、テキスト、メール、URLの情報をNotionに送信できるように設計されています。異なる情報形式を扱う場合は、Notion API リファレンス(公式ドキュメント)を参考にして、必要なJSON構造をカスタマイズしてください。

このワークフロー設計により、データは正確に処理され、効率的にNotionに保存されます。

「Dify x Notion x Slack・Google Drive」の組み合わせたフロー

上記では、OCRツールを使って名刺情報を自動で読み取り、記録する方法を説明しました。次に、内部向けバージョンの概要を紹介しますが、出力フォーマット(CSV)やCRMツール、データ形式が各社の業務に合わせて調整が必要だから、特定の設定は公開していません。構築方法に興味がある方は、お気軽にご連絡ください。

内部向けバージョンには技術的な内容が含まれますので、技術に詳しくない方はスキップしても問題ありません。

【補足】
Slackでは一度に最大10枚の画像しかアップロードできない制限があります。この制限を超えるために、Google Driveを利用し効率化します。

機能

① Slackからの画像受信と送信
・Slackに画像がアップロードされると、Lambdaがトリガーされ、指定された処理が実行されます。

② データのクエリとCSV出力
・RDSから過去のデータをクエリし、結果をCSV形式でSlackに送信します。

③ Google Driveから画像取得と処理
・Google Driveから画像を取得し、Difyで処理後、CSV形式で結果をSlackに返却します。

ツールの準備

⑴ Slackアカウント

概要:Slackはインターフェースとして機能し、ツールの操作を行うため、Slackアカウントが必要です。

⑵ AWSアカウント

概要:SlackとDifyを接続し、画像を自動でアップロードするためにAWS LambdaAWS S3が必要です。

  • AWS Lambda:ユーザーの指示や画像を受け取り、処理してDifyへ転送。
  • AWS S3:画像を一時保存し、Difyへ送信。
  • AWS RDS PostgreSQL:主なデータ保存用ツール。

⑶ Google Cloud

概要:Google Drive APIはGoogle Cloudを通じて作成され、AWS LambdaがDriveから画像を取得できるようになります。

ツールの詳細設定

■ Slackアプリの作成

こちらのリンクにアクセスし、Slackのアプリを作成します

②「Create New App」をクリックし、「From scratch」を選択後、アプリ名とワークスペースを入力して「Create App」をクリック

③ 権限の付与

「Features」メニューの「OAuth & Permissions」で、必要な権限を付与します。

■ Lambda関数URLの作成

① Lambda関数の作成と設定

AWSコンソールでLambda関数を作成し、関数の「設定」から「関数URL」を設定します。
その後、以下のコードをAWS Lambdaにデプロイします。

import json

def lambda_handler(event, context):
    body = json.loads(event['body'])

    if body.get('type') == 'url_verification':
        response = {
            'statusCode': 200,
            'body': json.dumps({
                'challenge': body['challenge']
            }),
            'headers': {
                'Content-Type': 'application/json'
            }
        }
        return response

    return {
        'statusCode': 400,
        'body': json.dumps({'message': 'Invalid request'})
    }

Lambda関数のURL(Function URL)をコピーしてください。

② Event Subscriptionsの設定

Slackに戻り、「Event Subscriptions」からイベント設定を行います。
Request URL」には、先程作成したLambda関数URLを入力します。
Subscribe to bot events」には、Botにメンションしたときに動作するよう、app_mentionを設定します。


上記設定が完了すれば、SlackとAWSの接続が完了です。

③ アプリのインストールとOAuthトークン取得

最後に「Install App」をクリックしてアプリをインストールし、Bot User OAuth Tokenslack_bot_token)を取得します。


ワークスペースにアップを設定すれば、準備完了です!

■ Dify のAPI の取得

アプリ作成後、『公開する』をクリックして公開し、左の『APIアクセス』からAPIキー(dify_token)を取得します。

■ Google Cloud の準備

① Google Cloudの新しいプロジェクトを作成します

・Google Cloud Consoleにアクセスし、プロジェクトを選択します。まだプロジェクトがない場合は、「New Project」をクリックして新規作成してください。

② APIs サービスを有効化に

・「APIs & Services」メニューから「Enable APIs and Services」を選択します


③ Google Drive APIの有効化

・「Google Workspace」セクションで「Google Drive API」を選び、APIを有効化します


④ API keyの取得

Credentials」タブで「Create Credentials」→「API key」をクリックし、生成されたAPIキー(drive_token)を保存してください。

これでGoogle Cloudの準備が完了します。

■ AWS S3とAWS RDS PostgreSQLの準備

AWS S3とRDS PostgreSQLの準備には、以下の情報が必要です:

  • bucket_name:S3バケツ名(ファイル保存用)
  • db_host:RDS PostgreSQLのデータベースホスト名
  • db_username / db_password:データベースへのアクセス用認証情報

また、AWS LambdaにはS3とRDSへの読み書き権限が必要です。この設定で、Lambdaからデータ操作ができるようになります。

■ AWS Lambda関数の作成

① 情報の準備と設定

・必要な情報をすべて準備したら、AWS Lambdaに戻り、これらの情報を環境変数として設定します。

② コードの実行について

・実行コードの詳細は公開していませんので、興味のある方はお気軽にお問い合わせください。

① Slackに名刺の登録

② 決まった時間内でのデータ取得

③ Google Driveから画像を取り込み、処理を行う

現在、ツールは社内のGoogle Driveに接続されていますが、フォルダIDの取得権限がないため、デモの実施はできません。ご了承ください。ぜひ、実際にご自身で体験してみてください。

終わり

最後までお読みいただき、ありがとうございます!

今回は、Difyと他ツールを組み合わせた名刺情報管理の自動化ワークフローをご紹介しました。効率的なデータ処理で作業負担を軽減し、成果を最大化できます。

改善点やご意見があれば、ぜひお聞かせください

共に強力なコンテンツ戦略を築きましょう!今後ともよろしくお願いいたします。

お問い合わせ先

AI/LLM/ビッグデータ/SalesTech/HRTech/PropTechなどの最新情報を入手するには、SNSで当社のCEOをフォローまたは連絡してください

生成AIやオフショア開発やセールステックに興味がある方、是非THEINFITECHにご相談ください。弊社のAIとビッグデータに関する様々な開発経験とプロフェッショナルなチーム体制によって貴社のプロジェクトを成功に導きます。