YetiForceCRM(以下、YetiForce)は vtiger CRM をベースに大幅に拡張・改修されたオープンソースの CRM であり、バージョン 7(以下、v7)においても外部システムとのデータ連携を行うためのさまざまな機能が用意されています。ここでは、既存の機能を使った代表的な連携方式や、それぞれでどのようなデータ連携が可能かを中心に解説します。また、外部システム側から YetiForceCRM にアクセスしてデータ連携する際のポイントについても詳述します。
連携機能の概要
YetiForce の v7 で主に利用できる外部連携の方法としては、以下のようなものがあります。
- Webサービス(API)連携
- REST API
- SOAP API
- ワークフロー(Workflow)を利用した外部システムへのHTTPリクエスト送信
- Webhook / コールバックの受信(外部システムからYetiForceへのデータ送信)
- メールインテグレーション(IMAPスキャナ等)
- 標準機能やアドオンの活用(カレンダーの同期、PBX連携など)
これらのうち、もっとも汎用的で強力なのが Webサービスを利用した連携です。
以下、それぞれについて詳しく説明します。
Webサービス(API)連携
REST API 連携
YetiForce には REST API が実装されており、外部システムから HTTP(S) を介してデータの取得や登録・更新・削除といった操作が可能です。
具体的な特徴は次のとおりです。
- 認証方法
- パスワード認証、Access Key、トークンベースの認証など、YetiForce 内部で管理されるユーザ情報を用いたセキュアな認証方式が利用可能。
- 連携用のユーザを専用に作成し、権限を制御することで操作範囲を制限できる。
- 利用可能な操作(例)
- CRUD(Create, Read, Update, Delete)
見込み客(Leads)、顧客(Accounts)、取引先責任者(Contacts)、チケット(HelpDesk)など主要なエンティティを中心に、レコードの新規作成・取得・更新・削除が可能。 - 検索 / フィルタリング機能
REST API の呼び出しでクエリを指定し、条件を指定してレコードを検索・フィルタリング。 - モジュールのメタ情報取得
フィールド情報やレイアウトを取得することが可能。フィールドやピックリストの選択肢を外部システムに連携して使うケースもある。
- CRUD(Create, Read, Update, Delete)
- 主な利用シーンの例
- 外部のECサイトやマーケティングツールから顧客情報をリアルタイムに YetiForce に登録し、営業担当へ割り当てる。
- 別システムで管理している請求書情報を取得し、YetiForce の請求書モジュールに紐づけて管理する。
- サービスチケットや問い合わせを外部チャットボットから起票し、YetiForce で管理・対応する。
REST API による基本的な連携イメージ
- 外部システムで発生したデータ(例:ECサイトで注文が発生)
- 外部システムから YetiForce REST API を呼び出し
- 認証 → データ送信(JSON形式など)
- YetiForce 側でデータを受信し、該当モジュールへレコードを作成
- 作成完了後のレスポンス(成功/失敗、レコードID など)を外部システムに返却
このように、一般的な Webサービス連携のフローとなります。
SOAP API 連携
YetiForce は、vtiger CRM 由来の SOAP API もサポートしています。
最近では REST API を利用するケースが増えていますが、SOAP を利用したい(あるいは既存で SOAP を利用している)環境の場合、引き続き以下のような操作が可能です。
- WSDL を用いた SOAP クライアントの作成
WSDL(Web Services Description Language)を用いて外部システムからクライアントコードを自動生成し、API を呼び出す。 - YetiForce サーバ側のエンドポイントを指定して操作
REST API と同様、レコードの作成・取得・更新・削除といった基本操作を行える。
一般的に新規開発の場面では REST API を選択することが多いですが、レガシーシステムや SOAP クライアントがすでに存在する場合には SOAP API を利用しても問題ありません。
ワークフロー(Workflow)を利用した外部連携
YetiForce には ワークフロー機能 があり、特定の条件が成立したり、レコードが更新/作成/削除された際に処理を実行させることができます。
このワークフローで利用できる機能の一つに「Webhook の送信(HTTP リクエスト送信)」があるため、外部システムへの連携が容易に行えます。
ワークフローによる連携フロー
- ワークフローの作成
- トリガー条件を設定(例:取引先責任者が新規作成された、ステータスが変更された等)
- ワークフローのアクションとして「HTTP リクエスト送信」
- 連携先の URL を設定し、POST / GET / PUT などのメソッドや、送信するパラメータを設定。
- JSON や FORM 形式など、必要に応じた形式を指定可能。
- 外部システム側で受信
- 受信したデータを外部システムで処理し、必要に応じてレスポンスを返却する。
この方式を使うと、YetiForce 側でイベントが起こったタイミングで、外部システムにリアルタイムに通知することができます。
また、HTTP リクエスト送信の際には、YetiForce 側のレコード情報を変数として埋め込んで送信できるため、必要なデータを柔軟に渡すことが可能です。
Webhook / コールバックによる受信
外部システムからのコールバック
ワークフローで YetiForce から外部に送信するパターンとは反対に、外部システム側から YetiForce にデータをプッシュしたい場合があります。
この場合は YetiForce の API を利用したり、YetiForce サーバに受信用の仕組みを設置する必要があります。
例:外部システムが注文完了のタイミングで YetiForce にコールバックを送る
- 外部システム(例:ECサイト)で注文が確定した
- ECサイトが YetiForce の REST API エンドポイントに対して POST でデータを送信
- YetiForce がリクエストを受け取り、該当モジュール(例:SalesOrder モジュール)へレコードを登録
- YetiForce がレスポンス(成功/失敗等)を返却
このように、外部システム側から呼び出してデータを連携することが可能です。
受信時のビジネスロジックをカスタマイズしたい場合には、YetiForce のカスタムコード(イベントハンドラやハンズオンでの開発)を追加しますが、標準的な CRUD 操作だけであれば API 利用の設定だけで十分です。
メールインテグレーション(IMAP スキャナ等)
YetiForce には メールのインテグレーション機能 が充実しており、外部システムとの連携要件によってはメール経由での連携も活用可能です。
- メールスキャナ(Mail Scanner)機能
- IMAP でメールボックスを監視し、受信メールを特定のモジュール(チケット、問い合わせ、リード等)に自動で振り分け。
- メールの内容に基づいてレコードを作成したり、既存レコードに関連付けることが可能。
- メールテンプレートと自動送信
- ワークフローや通知設定と組み合わせ、外部システムへのメール送付にも利用可能。
例えば、外部システムでのアラートやログをメールで送信しておき、YetiForce の「問い合わせチケット」として取り込んで対応管理をするといった運用が考えられます。
その他の標準機能・アドオン連携
カレンダーの同期
- CalDAV / iCal などのプロトコルを通じて、外部カレンダー(例:Google Calendar やその他 CalDAV 対応システム)と同期が可能。
- スケジュールやタスクを双方でやりとりし、YetiForce 上で予定を集中管理する。
PBX(電話システム)連携
- Asterisk などの PBX と連携し、着信時に YetiForce 上で顧客情報を表示するなどの機能が利用可能。
- 電話の発信履歴や録音を YetiForce 側のモジュールに紐づけて記録することもできる。
OAuth / SSO
- 外部の認証基盤(OAuth 2.0 等)と連携し、シングルサインオン(SSO)を実現する機能がある。
- 社内ポータルや外部アプリケーションと YetiForce の認証を一元化するケースに利用可能。
これらは外部システムの種類や要件に合わせて適宜組み合わせることで、YetiForce が営業・顧客管理のハブとして機能しやすくなります。
外部システムからのアクセス方法まとめ
外部システム側から YetiForce へデータを連携する際の基本的な考え方としては、以下のフローが典型的です。
- YetiForce に連携用のユーザを作成
- 必要に応じてロールやアクセス権限を設定。
- API アクセスキーやトークンの発行(REST / SOAP いずれか)
- 外部システムが YetiForce に対して認証を行い、API エンドポイントにアクセス
- 例:
POST https://<YetiForceサーバ>/webservice/v7/xxx - 認証トークンをヘッダに付与、もしくはリクエストパラメータとして送信。
- 例:
- 認証が成功すれば、CRUD 操作やクエリ等を実行し、必要なデータを連携。
セキュリティ上の注意点
- SSL/TLS(HTTPS) の利用
- 認証情報やデータを暗号化しないと漏洩リスクが高まるため、必ず HTTPS 通信を行う。
- IP 制限やファイアウォール設定
- API を公開する場合、特定の IP アドレス範囲だけアクセス許可するなどの対策が望ましい。
- API アクセス権の細分化
- 連携用ユーザに不要なモジュールへのアクセス権を付与しない。
- ログの監視
- YetiForce が出力する API ログを定期的に確認し、不審なアクセスがないかをチェック。
まとめ
YetiForce v7 では、主に Webサービス(REST / SOAP)の標準機能によって外部システムとのデータ連携を柔軟に実現できます。
また、ワークフローの「HTTPリクエスト送信」機能を組み合わせることで、YetiForce 側から外部システムへの通知(Webhook 的な使い方)が簡単に行えるようになっています。
- 外部システムから YetiForce へデータを送りたい場合
- API を呼び出して CRUD 操作を行う
- 既存の SOAP クライアントがある場合は SOAP API、近年の新規開発では REST API を利用。
- YetiForce から外部システムへ通知をしたい場合
- ワークフロー(Workflow)で HTTP リクエスト送信を設定するだけで、各種イベントのタイミングで外部へデータを渡せる。
さらに、メールインテグレーション、CalDAV、PBX 等の既存モジュール・アドオンが豊富に用意されているため、要件に応じて適宜活用が可能です。外部システムとの認証連携(OAuth / SSO)やセキュリティ設定を正しく行い、運用上のロギングと監視を忘れずに設定することで、安全かつスムーズにデータ連携を実装できます。
以上が、YetiForceCRM v7 における外部システムとの連携方法の概要と具体例です。運用環境や要件に合わせて最適な連携手法を選択・組み合わせることで、YetiForce を中心としたシームレスな業務システム統合が実現できます。