Salesforce
イベント
マガジン
技術ブログ
はじめに こんにちは。医療プラットフォーム本部ビジネス基盤グループでエンジニアをしている熊本です。 ブログへの登場は久々となりますが、2019年に新卒で入社して以来、長らくプロダクト開発のエンジニアをしてきました。そんな私は現在、医療プラットフォーム全体のMA(マーケティングオートメーション)、SFA(営業支援)、CRM(顧客管理)といったITツールおよび業務フローの設計・改善を通じて、事業パフォーマンスの向上を担う開発組織のマネージャーを務めています。 メドレーでは、患者・生活者と、病院・有床診療所、医科診療所、歯科診療所、調剤薬局といった各医療機関向けに事業・プロダクトを展開していますが、今回は、これらの事業を支えるITツールの Salesforce を kintone へ移行したプロジェクトについてお話しします。 背景 SFAが抱えていた課題 弊社では長年、医療プラットフォームにおける複数の事業部門で共通のSalesforceを利用してきましたが、運用を続ける中で以下のような課題が顕在化していました。 最新・正しい情報の把握が困難 :正規化されていないデータや重複管理による情報の分散 データ分析の壁 :分析を見据えた設計になっておらず、プロダクト側の利用状況との突合など、柔軟なデータの加工に工数がかかっていた 非効率な業務フロー :複数ツールの併用や重複する項目の存在などを背景に、手動での転記やダブルチェックが発生している状態 システム管理の属人化 :目的が不明な項目が乱立し、メンテナンス・レポート作成ができる人が限られている状態 また、130個近くのライセンスを保有していたため、これらの課題を踏まえるとコスト過多な状況にも陥っていました。 全ての顧客体験をプロダクト側が理解し、設計責任を持つ 私たちは、 営業・カスタマーサクセスといった顧客活動から、契約・請求に至るまでを「一連のプロダクト体験」として捉え 、その設計・実装にエンジニアが深く関わることを大切にしています。 この考えに基づき、単なるツールのリプレイス(お引っ越し)ではなく、より良い顧客体験につながる合理的で整理された事業オペレーションを実現するため、 業務・データ・ツールを一体でエンジニアが設計し直す 。これが本プロジェクトの重要なポイントでした。 取り組み 体制構築とアーキテクチャ設計 前述の通り、Salesforceはこれまで複数の事業部門で活用してきました。1人で各事業の業務フローや必要データを把握し再設計するのは困難ですし、何より私たちが大切にしている考え方も踏まえ、プロダクトエンジニアが各事業に深く潜り込んで再設計すべきだと考えました。そこで、各事業領域からプロダクトエンジニアを1名ずつアサインする体制としました。私はPMとして全体設計や車輪の再発明が起きないよう各部門の連携をコントロールする役割を担い、各環境のデータ設計・構築はその事業領域担当のエンジニアが主導する形をとりました。 kintoneは責務分離やメンテナビリティを考慮し、事業領域ごとに環境を分けるアーキテクチャを採用しました。また、kintoneへの移行に伴い、コストや親和性を加味してMAツールの移行も行いましたが、本記事では詳細を割愛させていただきます。 医療プラットフォーム本部の組織体制 ツールの移行イメージ 業務理解と要件定義 まずは、日々の事業活動の中で発生するデータや、業務上必要となるデータ、およびそのフローの現状とあるべき姿を描くため、事業部とコミュニケーションを重ねました。長年利用してきたこともありデータ項目が膨大となっていたため、「このデータをどう活用するのか」を重点的に会話し、そもそも不要ではないか、より活用しやすくするにはどうすべきか、などの整理に時間をかけました。 データ設計 特に工夫したのは、DB観点での「正規化」とユーザー観点での「入力のしやすさ」のバランスをとったデータ設計です。kintoneはDBとUIが一体型であるため、このバランス調整にとても苦労しました。一般的なRDBMSではデータの履歴を残すために専用のテーブルを設けイミュータブルモデリングなどを採用する場面でも、kintoneだとテーブル≒アプリとなるため、テーブルを分けることは単純にユーザーの画面遷移や入力箇所を増やすことに直結してしまいます。こういった場合は完全な正規化をするのではなく、普段の商談管理で使用するアプリとその商談ステータスの履歴を管理するアプリを分け、それぞれのアプリに同類のフィールド(RDBMSのカラムをkintoneではフィールドと呼びます)を設置することを許容しつつも、JavaScriptを用いた自動転記の仕組みを作ることで、ユーザーは商談管理アプリだけに入力していれば良いようにするといった工夫をしました。 泥臭く戦ったポイント:データ移行と同期システム ここからは、エンジニアとして特に苦労した2つのポイントをご紹介します。 1. 冪等性と再現性を追求したデータ移行 100名以上が利用するシステムにおいて、特にデータ移行には慎重を期しました。具体的な方法としては、Salesforceのスキーマをkintoneのスキーマに変換し、データをマッピングした結果をCSVに出力するという一連の処理を、CLIコマンド等の整備によりスクリプト化しました。 データ移行では、一度kintoneに投入した後、UAT期間中に事業部からのフィードバックを受けて設計を見直し、再投入が必要になるケースがありました。また、リハーサル目的で、本番移行前にも何度でも再実行できる仕組みが必要でした。そのため、前述のように一連の処理をスクリプト化し、「再現性」を確保しました。さらに、「冪等性」も重要なポイントでした。今回のケースでは、それぞれのアプリにユニークキーを設けて常にUPSERT処理を行うことで、元データが同じであれば、何度実行しても同じ状態を再現できるようにしました。 kintoneへのインポート処理自体はレコード数に比例して一定の時間がかかってしまうものの、事前に手順化しリハーサルを重ねたことで、本番稼働前日の夜間作業で無事に移行を完了させることができました。ただし、(一定の想定範囲ではあったものの)移行作業直前にSalesforce側でデータの更新や削除が行われたことで、kintone側で関連データ同士の紐付けがうまく設定できないケースも発生しました。これはエラーログを見て個別に対処するしかなく、大変苦労した部分でもありました。 2. Salesforceとkintoneの双方向同期システム Salesforceは長年活用してきたことから、いわゆるSFAとしての機能だけではなく、請求や契約管理としての役割も担っていました。今回のプロジェクトでは事業部側が利用するSFAとしての機能はkintoneへ移行しつつも、請求や契約管理といったバックオフィス領域に関しては将来的な販売管理システムへの移行も見据えてスコープ外としていました。よって、これまでは一つのシステムの中で顧客・商談から契約・請求まで一元管理していたものを分離したため、システム間でデータを連携させる必要がありました。 詳細は省きますが、Salesforceに残った契約・請求関連データの一部は、営業やカスタマーサクセスなどの事業部側と契約・請求処理を担うバックオフィス部門の双方向による書き込みが業務上必要であったため、単にkintoneから必要なデータを一方向で送るだけでは要件を満たせませんでした。そのため、SFA領域とバックオフィス領域のハブとなる「商談」などのデータに関しては、Salesforceとkintone間で一部のスキーマ定義を揃え、両システムを一定間隔で同期させる仕組みとしました。 具体的な仕組みとしては、両システムのスナップショットを一定間隔で取得し、前回との差分を検知して互いのシステムへ反映し合う形をとりました。 ここで壁となったのが、「準リアルタイム性」の要求と「データの競合」です。両方のシステムで日常的にトランザクションが発生するため、「同じレコードの同じ項目が、それぞれのシステムで同時に別の値へ書き換えられる」可能性がありました。この競合状態を安全に解決するためのロジックを構築する必要があり、非常に苦労しました。 この対応にあたっては、当初想定していた対象項目が、本当に準リアルタイムで同期が必要なのかを関係者と徹底的に精査しました。その結果、同期間隔の調整や同期対象の大幅な絞り込みができ、現在は安定して稼働する仕組みを実現できています。 ※ データ移行や同期処理のディープな話は盛りだくさんな内容となってしまうため、また別の機会にブログ化できればと思います! 成果 80%以上のランニングコスト削減 契約・請求などを担う組織の必要分を除き、90個ほどのアカウントを削除することができました。kintoneの費用を加味しても、全体のランニングコストとして80%以上削減することができました。 BigQuery集約によるデータ分析・可視化の実現 Salesforceのレポート機能の制約から解放され、より柔軟なデータ活用ができるようになりました。 KPIダッシュボードの構築 :Looker Studioなどのアセットと連携したデータの分析・可視化が可能に 自律的な分析文化 :勉強会の開催やマニュアル整備のおかげもあり、事業部メンバーが生成AIも活用しながら、より自律的かつスピーディなデータ分析が可能に 横断的分析 :kintoneの顧客・商談データ、契約データ、プロダクトデータなどをBigQueryに集約し、多角的な分析を実現 また、横断組織にあるデータ戦略グループが、最近「自然言語でBigQuery等のデータを分析できる社内システム」をリリースしました。今回のプロジェクトによるデータ整備とこのシステムが組み合わさり、よりスピーディにデータ分析を行える環境づくりが加速しています。 関連記事: データ分析AIエージェントの実践 - Slack × Devin × Context Engineering 今後の展望 本プロジェクトによって多くの成果を得られましたが、私たちはまだ「業務やデータの一部をツールの移行と共に再設計し、基盤を整えた」に過ぎません。 今後はこの基盤を活かし、KPIなどの定量的なデータや現場ヒアリングを通じて事業の課題・ボトルネックを特定し、継続的に改善を回すサイクルを作っていきたいと考えています。 また、日々顧客と向き合う事業部のメンバー自身が、データ活用や拡張性を見据えて自律的にツールを改修できる状態こそが、組織のアジリティを最も高く保ちながらスケールできる理想の形だと考えています。その実現に向けて、エンジニアリングの専門性を持つ私たちビジネス基盤グループが、誰もが改修・改善しやすい仕組みづくりを牽引していきたいと考えています。 まとめ エンジニアが事業の深い部分に入り込み、業務・データ・ツールを一体で再設計するプロジェクトについてご紹介させていただきました。 メドレーでは、「医療ヘルスケアの未来をつくる」というミッションのもと、エンジニアがビジネスの根幹に関わり、プロダクトと事業を共に成長させる文化があります。自ら課題を発見し、設計から運用までをエンジニアとしてのリーダーシップを発揮しながら一気通貫で推進できる方を絶賛募集しています。 メドレーで働く|株式会社メドレー メドレーでの働き方や人事制度、求人情報など、採用に関する情報をご紹介します。 www.medley.jp 少しでも興味を持っていただけましたら、ぜひメドレーの採用ページをご覧ください!
Gemini Enterpriseとは?「あなた専用の優秀なデジタル同僚」 Gemini Enterpriseを一言で表すと、「職場におけるAIの入り口」となる、エンタープライズグレードのAI・エージェントプラットフォームです。単なる対話型AIアシスタントにとどまらず、企業のあらゆるデータやシステムに接続された「自律的に動くエージェントのチーム」を、全従業員が活用・管理できるプラットフォームとなることを目的としています。
みなさん、こんにちは。ソリューションアーキテクトの古屋です。今週も 週刊AWS をお届けします。 ゴールデンウィークも終わり、今週から本格始動という方も多いのではないでしょうか。みなさんはどんな連休を過ごされましたか。私は家の中でのんびり過ごしていました。 さて、5月26日(火) 14:00〜17:30 には、日本では 2 回目の開催となる「Amazon EKS でスケーリングする生成 AI 環境を構築するハンズオンワークショップ」をオンラインで開催します。NVIDIA GPU を活用した本番環境レベルの生成 AI 環境を、Karpenter による柔軟なオートスケーリング、vLLM や Ray を用いた推論基盤の構築など、実践形式で体験いただける内容です。すでに Kubernetes 基盤をお持ちの方や、Self-managed な生成 AI 環境を検討されたい方に特におすすめですので、ご興味のある方は こちら から参加登録いただければと思います。 それでは、先週の主なアップデートについて振り返っていきましょう。 2026年5月4日週の主要なアップデート 5/4(月) Amazon Quick が Microsoft Outlook 拡張機能をアップグレード (プレビュー版) AWS は Amazon Quick の Microsoft Outlook 拡張機能のアップグレードバージョンをプレビュー版として発表しました。この拡張機能により、生成 AI を活用した生産性向上機能を Outlook のメールとカレンダーワークフローに直接統合できます。自然言語で未読メールの要約、受信トレイの整理、会議のスケジュール、インライン返信の作成が可能になり、Outlook を離れることなく業務を完結できます。現在、US East (N. Virginia)、US West (Oregon)、Asia Pacific (Sydney)、Europe (Ireland)、Asia Pacific (Tokyo)、Europe (Frankfurt)、Europe (London) の 7 リージョンでプレビュー提供されています。詳細は こちらのドキュメント をご参照ください。 Amazon Quick が S3 Tables buckets をデータソースとしてサポート Amazon Quick が Amazon S3 table buckets を新しいデータソースとして正式にサポートしました。これにより、中間的なデータウェアハウスや OLAP レイヤーを経由せず、S3 table buckets に保存された Apache Iceberg 形式のテーブルに対して直接ダッシュボードの作成、会話型分析、データ探索が可能になります。Salesforce、SAP、Amazon Kinesis Data Firehose からの Zero-ETL 統合と組み合わせることで、パイプライン依存を最小限に抑えながら、ほぼリアルタイムでインサイトを取得できます。この機能は Amazon Quick が利用可能な全 AWS リージョンで提供されます。詳細は こちらの Blog 記事 をご参照ください。 Amazon Quick が Dataset Q&A を導入し、エンタープライズデータに対する会話型分析を実現 Amazon Quick は、エンタープライズデータに対して自然言語で質問できる新機能「Dataset Q&A」を一般提供開始しました。この機能により、データセットへのアクセス権を持つユーザーは、ダッシュボードを介さずに直接データセットを自然言語で探索し、Row Level Security (RLS) や Column Level Security (CLS) などのガバナンスルールを尊重しながら実用的なインサイトを取得できます。Text-to-SQL エージェントが質問を解釈し、適切なデータを特定して正確な SQL を生成します。Dataset Q&A は Amazon Quick が利用可能な全ての AWS リージョンで利用できます。詳細は こちらの Blog 記事 をご参照ください。 Amazon Quick が自然言語プロンプトからダッシュボードを生成 Amazon Quick に Generate Analysis 機能が追加され、自然言語プロンプトからダッシュボードを自動生成できるようになりました。最大 3 つのデータセットを選択し、作成したいダッシュボードを説明するだけで、適切なビジュアライゼーション、フィルターコントロール、前年比や前月比などの計算フィールドを含む整理されたダッシュボードが数分で生成されます。Enterprise サブスクリプション/Author Pro ユーザーが対象です。Amazon Quick が利用可能な全 AWS リージョンで一般提供 (GA) を開始しました。詳細は こちらの Blog 記事 をご参照ください。 5/5(火) AWS IAM でロール、ロール信頼ポリシー、インスタンスプロファイル、マネージドポリシー、ID プロバイダーの最大クォータを引き上げ AWS Identity and Access Management (IAM) は、6 つのリソースの最大クォータを引き上げました。カスタマーマネージドポリシー (5,000 → 10,000)、インスタンスプロファイル (5,000 → 10,000)、ロールあたりのマネージドポリシー (20 → 25)、ロール信頼ポリシーの長さ (4,096 → 8,192 文字)、ロール数 (5,000 → 10,000)、OpenID Connect プロバイダー (100 → 700) が対象です。大規模な AWS 環境における制約を緩和し、より多くのワークロードに対応できるようになりました。詳細は こちらのドキュメント をご参照ください。 Amazon Quick が New Relic との統合でオブザーバビリティ駆動型 AI エージェントに対応 Amazon Quick が New Relic の AI エージェントと統合し、オンコールエンジニアや SRE が Quick のワークスペースから離れることなく、インシデント調査、根本原因分析 (RCA)、タスク作成を実行できるようになりました。New Relic の MCP (Model Context Protocol) サーバーに接続することで、アラートインサイト、ユーザー影響分析、ログ解析、トランザクション診断、NRQL クエリなどのアクションを自然言語で呼び出せます。Quick Flows との組み合わせにより、定期的なトリアージランブックやエスカレーションワークフローの自動化も可能です。詳細は こちらのドキュメント をご参照ください。 Amazon WorkSpaces が AI エージェントによるデスクトップアプリケーションの操作に対応 (プレビュー) Amazon WorkSpaces は、AI エージェントがマネージド WorkSpaces 環境を通じてデスクトップアプリケーションに安全にアクセスし、操作できる機能をプレビューで提供開始しました。Model Context Protocol (MCP) を使用して、あらゆるフレームワークで構築された AI エージェントが、API を持たないレガシーアプリケーション (メインフレーム、ERP、プロプライエタリツール) を最小限のコードで操作できます。企業は、アプリケーションをモダナイズせずとも、保険金請求処理や取引決済などの業務を大規模に自動化できます。詳細は こちらの Blog 記事 をご参照ください。 Amazon ElastiCache で Valkey 9.0 を発表 Amazon ElastiCache が Valkey 9.0 をサポート開始しました。フルテキスト検索とハイブリッド検索機能が組み込まれ、パイプライン処理のスループットが最大 40% 向上します。ハッシュフィールド単位の有効期限設定や、クラスタモードでのマルチデータベースサポートにより、データライフサイクル管理とマルチテナントアーキテクチャが簡素化されます。全ての商用 AWS リージョン、AWS GovCloud (US) リージョン、中国リージョンで、ノードベースクラスタとサーバーレスキャッシュの両方で追加コストなしで利用できます。詳細は こちらの Blog 記事 をご参照ください。 5/6(水) Agent Toolkit for AWS を発表 — AI コーディングエージェントが AWS 上で効果的に構築できるよう支援 AWS は、AI コーディングエージェントが AWS 上で正確に構築できるよう支援する本番対応のツールセット「Agent Toolkit for AWS」をリリースしました。このツールキットは、エージェントスキル、フルマネージド MCP サーバー、プラグインの 3 つのコンポーネントで構成され、エラー削減、トークンコスト低減、エンタープライズグレードのセキュリティ制御を実現します。40 以上のスキルが提供され、追加料金は不要で、エージェントが使用した AWS リソース分のみの課金となります。詳細は こちらのドキュメント をご参照ください。 AWS MCP Server の一般提供開始 AI コーディングエージェントに対して、AWS サービスへの安全かつ監査可能なアクセスを提供する AWS MCP Server を一般提供 (GA) しました。re:Invent 2025 でのプレビュー公開以降、複数の機能強化を経ての GA となります。AWS MCP Server は Agent Toolkit for AWS の中核コンポーネントで、Model Context Protocol (MCP) を通じて AI エージェントが AWS サービスと連携します。組織は IAM ベースのガードレール、Amazon CloudWatch メトリクス、AWS CloudTrail ログにより、可視性とコントロールを維持しながら AI エージェントに AWS サービスを操作させることができます。詳細は こちらのページ をご参照ください。 Amazon Bedrock AgentCore Runtime が Amazon S3 Files と Amazon EFS からの Bring-Your-Own ファイルシステムをサポート Amazon Bedrock AgentCore Runtime が、お客様の Amazon S3 Files および Amazon EFS アクセスポイントを直接エージェントランタイムにアタッチできる Bring-Your-Own ファイルシステム機能をサポートしました。AgentCore Runtime がファイルシステムを指定パスにマウントすることで、エージェントは標準的なファイル操作でデータの読み書きを実行できます。カスタムマウントコード、特権コンテナ、ダウンロードオーケストレーションは不要です。この機能により、スキル、ツールライブラリ、リファレンスデータセット、ナレッジベース、プロジェクトファイルをセッション間や複数エージェント間で共有できるようになります。詳細は こちらのドキュメント をご参照ください。 5/7(木) Amazon OpenSearch Service が VPC プライベート接続のための VPC egress オプションをサポート Amazon OpenSearch Service は VPC egress オプションのサポートを開始しました。この機能により、VPC 内の OpenSearch Service ドメインから ML モデル、AWS サービス、カスタムアプリケーションへの送信トラフィックを、パブリックインターネットを経由せずにプライベートに接続できるようになります。OpenSearch Service は選択したサブネットにネットワークインターフェースを追加し、送信トラフィックを VPC にルーティングします。すべての AWS リージョンで利用可能です。詳細は こちらのドキュメント をご参照ください。 Amazon Bedrock AgentCore に Payments 機能を追加(プレビュー) AWS は、AI エージェントが Web コンテンツ、API、MCP サーバー、他のエージェントに対して自律的にアクセスし支払いを行える Amazon Bedrock AgentCore payments(プレビュー)を発表しました。Coinbase および Stripe との協業により構築された、自律エージェント向け初のマネージド決済機能で、ウォレット認証からトランザクション実行、支出ガバナンス、可観測性までを一貫して管理します。エンドユーザーによる明示的な認可と、AgentCore のインフラ層で強制されるセッションごとの支出上限により、エージェントは定められた範囲内でのみ支払いを実行できます。US East (N. Virginia)、US West (Oregon)、Europe (Frankfurt)、Asia Pacific (Sydney) の4リージョンで利用可能です。詳細は こちらの Blog 記事 をご参照ください。 Amazon EC2 M8idn および M8idb インスタンスを発表 AWS は Amazon EC2 M8idn および M8idb インスタンスの一般提供を開始しました。これらのインスタンスは、AWS 専用の第6世代 Intel Xeon Scalable プロセッサと第6世代 AWS Nitro カードを搭載しています。前世代 M6idn インスタンスと比較して、vCPU あたり最大 43% の計算性能向上を実現します。M8idn は最大 600 Gbps のネットワーク帯域幅を提供し、M8idb は最大 300 Gbps の EBS 帯域幅を提供します。米国東部 (バージニア北部)、米国西部 (オレゴン)、欧州 (スペイン) の 3 リージョンで利用できます。詳細は こちらのページ をご参照ください。 5/8(金) Amazon Route 53 Global Resolver でanycast DNS 解決のための AWS リージョンの追加と削除が可能に Amazon Route 53 Global Resolver で、anycast DNS 解決を行う AWS リージョンを動的に追加・削除できるようになりました。この機能により、組織の成長に合わせて Global Resolver のカバレッジを拡大したり、コンプライアンス要件に応じてリージョン展開を調整したりできます。Global Resolver の設定を再作成する必要がなくなり、既存の設定を維持したままリージョン構成を変更できます。この機能は追加料金なしで、Route 53 Global Resolver がサポートされているすべての AWS リージョンで利用できます。詳細は こちらの Blog 記事 をご参照ください。 それでは、また来週お会いしましょう! 著者について 古屋 楓 (Kaede Koya) / @KaedeKoya35328 AWS Japan のソリューションアーキテクトとして、多種多様な業界のお客様をご支援しています。特定の技術やサービスに偏らず、幅広い分野のご相談に対応し、技術相談会や各種イベントにて登壇しています。好きな AWSサービスは Amazon Lightsail と Kiro で、シンプルかつ柔軟にクラウドの力を活用できる点がお気に入りです。休日は愛犬 2 匹と静かに過ごしています。