メインコンテンツへスキップ

Prodantix

概要

カテゴリー
開発者向けプラットフォーム
ウェブサイト
prodantix.com
コンソール
app.prodantix.com
ドキュメント
prodantix.com/en/docs/overview
GraphQL API
api.prodantix.com/graphql
イベント受信
eu.api.prodantix.com/v1/events
リアルタイム
eu.ws.prodantix.com
MCP インターフェース
eu.mcp.prodantix.com/mcp
セッションリプレイ
eu.replay.prodantix.com

Prodantix は、ソフトウェアをつくる人のための道具です。どの製品チームも、同じ三つの問いを繰り返しています。人は自分たちのアプリの中で実際に何をしているのか、どの部分を誰に見せるべきか、そして何かを伝えるならいつが適切なのか。

多くの会社は、この三つの仕事にそれぞれ別の道具を買います。やっかいごとはそこから始まります。道具ごとに利用者の記録を別々に持つため、その記録は少しずつずれていきます。ある道具は、この顧客はもう初期設定を終えたと考えています。別の道具は追いついておらず、先週すでに済ませた手順の案内を送ってしまう。本人から苦情が来るか、二つの画面が違う数字を示すまで、誰も気づきません。

エンジンの成り立ち

エンジンは四つの基本要素からできており、その他はすべてこの上に築かれています。順番に見ていくのが分かりやすく、それぞれが次の要素へとつながっています。コンセプトのリファレンスで詳しく解説しています。

イベント

利用者が行ったひとつのこと。起きたその瞬間に記録されます。登録の完了、ページを開いたこと、途中でやめたフォームなど。イベントは生の信号であり、外部からシステムに入ってくる唯一のものです。ほかはすべてここから導かれます。

ユーザー状態

ある利用者について分かっていることすべてを、ライブかつ問い合わせ可能な形にした射影です。その人のイベントから導かれ、新しいイベントが届いた瞬間に更新されます。分析、フィーチャーフラグ、メッセージングはいずれもこの同じ真実の源を読みます。夜間の集計でもなければ、何かのジョブが同期を保つ複製でもありません。存在するのはひとつだけです。

判定

ユーザー状態に対して評価される規則です。誰がある集団に属するか、誰にフラグを渡すか、誰がメッセージの条件を満たすか。判定は問われたその瞬間のライブな状態を読むため、古くなった像から答えることはありません。

アクション

判定が成立したときにエンジンが行うことです。機能を開く、メッセージを送る、ワークフローを開始する。アクション自体もイベントとして記録され、それがループを閉じます。エンジンが行ったことが、エンジンの知ることの一部になるのです。

分析とは状態を読むこと

Prodantix の分析は、利用者の複製を自前で抱える別の保管庫ではありません。ユーザー状態を直接読むことです。ファネル、リテンション、コホートは、エンジンの他の部分が作用するのと同じライブな射影に対する問い合わせです。ですからデータウェアハウスへの SQL の往復も、夜間集計の待ち時間もありません。状態はすでに問いの形に整っています。コホートはここでは第一級の対象です。名前を持ち、条件節で定義され、人が条件を満たしたり外れたりするのに合わせて所属が更新され続けます。

また尋ねる問いを取っておく

ダッシュボードは名前の付いたタイルの集まりで、タイルとはすでに実行した問い合わせと、それをどう描いてほしいかの指定です。問い合わせはエクスプローラーが送った形のまま保存されるので、タイルが抱えているのは答えの絵ではなく問いそのものです。開けば問い合わせがもう一度走り、同じ問い合わせのままエクスプローラーへ戻るので、期間をずらすことも内訳を変えることもできます。ですからダッシュボードが古い書き出しになることはありません。見るたびにエンジンが生きた状態から答える、問いの集まりです。

数字がひとりでに動くとき

すべてのグラフを見張っていられる人はいません。見張る役はProdantixが担います。系列を区間ごとに読み、その系列の基準線とばらつきを求め、そこから離れすぎた区間を上下どちらの向きでも印を付けます。落ち込みも急増もどちらも報告され、それぞれに離れた元の基準線と、どれだけ外れていたかが添えられるので、本当の断絶とただの揺らぎを見分けられます。感度は固定の規則ではなく設定で、検出側は当て推量をしません。ほとんど平らな系列や、まだ形を持てないほど短い系列からは、誤報ではなく何も出てきません。

状態が語っている人たち

ユーザー状態は投影であり、ピープルの一覧はそれを一人ずつ読む場所です。コンソールはプロジェクトが見てきた人をすべて並べ、直近に動いた人を先頭に、検索欄と、進むにつれて読み込みが続く一覧を用意します。各行にはエンジンがその人について積み上げたものが載ります。イベント数、異なるセッション数、最初と最後に見かけた時刻、最後にした操作、所属するグループ、そして名前、メールアドレス、電話番号、アバターといった予約された属性が独立した列として取り出されています。行を開くとプロパティの表が丸ごと現れ、そこには決まった項目の並びではなく、あなたのイベントが置いていったものが入っています。グループには専用のタブと専用のプロパティがあります。会社やワークスペースはそれ自体でひとつの存在であり、その事実は各メンバーではなくその存在に属するからです。

一人の人と複数の ID

訪問者は、こちらがその人を知る前にやって来ます。SDK が ID を割り当て、その人はページを三つ読み、それから登録します。誰かがエンジンに素性を伝えるまで、そのプロフィールに名前はありません。一覧は推測せず、そのとおりに示します。登録が起きると、複数の ID はひとつの正規の識別に行き着く鎖としてつながれ、匿名のうちの足取りは二つ目のプロフィールを作らずに、名前のあるアカウントへ畳み込まれます。各行にはいくつの ID がそこへ行き着くかが示され、プロフィールがその一覧を持ちます。エンジンだけでは判断できないところは、二つのプロフィールを手作業で結合できます。どちらの識別を残すかはあなたが選び、衝突した項目はその側が優先され、件数は合算されます。これは二度と分かれません。結合前のプロフィールは監査記録に残るので、何が書かれていたかは取り戻せますが、いったん結ばれた二人を分けることはできません。

ひとつのセッションを見返す

アナリティクスは、昨日十一人が同じフォームを途中でやめた、とは教えてくれます。理由までは教えてくれません。セッションリプレイはページそのものを記録します。ブラウザ SDK が、その人の操作に合わせてドキュメントとそこで起きたすべての変化を捉え、順番のついたチャンクにまとめてレコーダーへ送り、コンソールがそのセッションを起きたとおりに再生します。どの記録もエンジンの他の部分と同じ識別子の下に置かれるので、セッションは別のツールの中だけに存在する訪問者 ID ではなく、すでに調べられる相手のものになります。

記録に残してよいもの

マスキングは、設定に触れる前から有効です。フィールドに入力された文字は、チャンクが送られる前にブラウザ側でアスタリスクに置き換わります。レコーダーに届いた時点で中身は初めから入っていません。長さと語の切れ目は残るので再生はページらしい見え方のままで、言葉そのものはありません。パスワード、メールアドレス、電話番号のフィールドはマスキングのオンオフにかかわらず伏せられるため、オフにしても資格情報の欄が露出することはありません。画面に見えているテキストは、こちらもマスクするよう指定しない限り残ります。各チャンクはマスクされたかどうかを記録し、コンソールはそれに応じてセッションに印を付けるので、どちらを見ているかは常に分かります。記録は非公開のストレージにあります。コンソールは一度に一つのチャンクについて短命の署名付きリンクを要求し、それなしでは何にも到達できません。その後セッションがどれだけの期間残るかは、ご利用のプランで決まります。

人によって見せるものを変える

チームは新しいものを、まず一部の利用者にだけ出して様子を見てから全員に広げたい、と考えることがよくあります。Prodantix は、ユーザー状態に対して条件を評価して誰に何を見せるかを決めます。属性、演算子、値の組み合わせを、保存済みの名簿を引くのではなく、フラグが問われたその瞬間に判定します。新しい機能を顧客の二パーセントにだけ渡し、使われ方を見てから、次のリリースを待たずに広げることも取り下げることもできます。

まだ役に立つうちに届くお知らせ

お知らせは、まだ役に立つあいだに届いてこそ意味があります。Prodantix は、その人が何かをした瞬間、あるいはできなかった瞬間に送ることができます。契約の上限に達した顧客は、その場で気づけます。あきらめて他所に移った翌朝ではありません。

相手が返事を書いてきたら

メッセージは誰かが返事をするまで一方通行で、返ってきた時点でサポートのやり取りになります。Prodantixはそれも受け持ちますが、そこにいるAIは送るのではなく下書きをします。モデルに渡されるのは、そのやり取りとその人自身の状態だけで、ほかは何もありません。別の顧客の会話も、あなたのプロジェクトの残りも渡りません。提案として返信を書き、その返信がやり取りの一言になるのは、あなたの担当者が送信を押したときだけです。つまり「送らずに提案する」はコードの作りそのもので、誰かが覚えておく決まりではありません。やり取りには専用の資格情報もあります。プロジェクトキーはプロジェクトを示し、SDKを組み込んだすべてのページの中を運ばれていくので、人の代わりにはなれません。会話ごとにそのひとつのやり取りだけに効くトークンが発行され、リクエスト本文に書かれたIDが相手を決めることは決してありません。会話を開くのは公開鍵以外に何も要らない唯一の経路なので、プロジェクトごと、呼び出し元ごとに回数が制限されています。

手順を自分でつなぐ

対応が一手で終わらないこともあり、その並びは自分で組みたいものです。ワークフローは小さなグラフです。手動で、あるいは誰かがコホートに入ったり出たりしたときに始まり、そこからノードを辿って進みます。アクションのノードは何かを行います(ログを一行書く、あなたのウェブフックを呼ぶ)。遅延のノードは待ちます。最長で三十日です。待機のノードは名前の付いた合図が届くまで止まり、合図が来なかった場合の出口も持てます。分岐のノードはユーザー状態に対して条件を確かめ、一致した経路か、そうでなければ既定の経路へ進みます。実行はノードを一つずつ進み、次を取りに行く前に各段階が確定するので、再起動しても最初から流し直さず、実際に到達していた場所から続きます。ウェブフックは呼ぶ前に検査されます。宛先は公開された https のアドレスでなければならず、要求は検査が通したアドレスにそのまま送られ、リダイレクトは追わず、応答が返らない呼び出しは打ち切られます。

AI オーケストレーションと、ループが閉じる仕組み

これまでの各面では、段取りをつなぐ作業は依然として利用者側に残ります。何かに気づき、それが誰に当てはまるかを見極め、どうするかを決める、という流れです。Prodantix はこのループ自体を回せます。エンジンはライブな状態から意味のある瞬間を検出し、該当するコホートを選び、アクションを決めます。ふつうの自動化と違うのは最後の部分です。アクションはイベントとして記録され、次の判定が読むのと同じユーザー状態へ折り返されます。システム自身のふるまいが、その人について知っていることの一部になるのであって、傍らで起きた出来事にとどまりません。

提案は人を待つ

エンジンは自分の結論に従って勝手に動きはしません。生み出すのは提案であり、提案とは書き出された計画です。これらのフラグ、これらのコホート、この文面。承認できるようになる前に、提案が名指しするフラグ、コホート、会話はすべてあなた自身のテナントに照らして解決されます。解決できない参照は黙って落とされるのではなく提案そのものを不成立にします。悪意ある内容を読んでしまったモデルが、あなたのプロジェクトの外へ手を伸ばせないのはこのためです。承認は人の行為であり、何かが起きるのはその時点です。実行は、あなたが手で使っているのと同じフラグと配信の経路を通るので、権限も監査記録もプランの上限もそのまま効きます。二度承認しても、二度目は何も起きません。

イベントを送り込む

すべては受信エンドポイントに送られたイベントから始まり、エンジンはそれを直ちにユーザー状態へ折り込みます。SDK はウェブ、モバイル、サーバーをカバーします。React だけは例外で、そのライフサイクルには専用アダプターが必要です。クライアントを一度だけ設置する provider と hook で、StrictMode にも耐えます。クイックスタートなら数行で接続できます。

キーと環境

SDK の呼び出しはいずれもプロジェクトキーを伴い、キーはコンソールで発行します。プロジェクトを作ると live と test の二つの環境ができ、それぞれに専用のキーが付きます。開発は test、本番は live です。どちらのキーも作成直後に一度だけ表示されます。サーバーはハッシュしか保持しないため、後からどの画面にも出せません。ローテーションでは選んだ環境の代替キーを発行し、古いキーを即座に止めるか猶予期間を置くかは利用者が決めます。

対話するための四つの経路

REST は三つのホストにまたがります。フラグとメッセージング用、イベント受信用、セッションリプレイ用で、それぞれが /openapi.json に自前の OpenAPI ドキュメントを提供します。受信は 202 を返しますが、これは処理のために受け付けたという意味であって保存された意味ではありません。不正なイベントは後段で破棄されることがあります。GraphQL はプロジェクト、フラグ、ワークフロー、分析、メッセージング、コホート、課金を含むアプリケーションモデル全体を扱います。リアルタイム面はフラグの変更、メッセージ、ワークフローの実行を配信し、認証されていない接続は即座に切断します。MCP 面はエージェントがツール呼び出しで読み書きするためのもので、機械間専用でブラウザからの要求は拒否します。

データはあなたのものであり続けます

Prodantix は当社のサーバーでも、お客さま自身のサーバーでも動かせます。どちらでも中身は同じです。預けたものは、いつでもそっくりそのまま取り出せます。データを売ることはありませんし、AIモデルの学習に使うこともありません。仕組み上、Prodantix はお客さまが持つどの記録よりも完全な顧客の記録を抱えることになります。だからこの約束は、ほかの場所より重い意味を持ちます。

対象となる方

Prodantix が向いているのは、この目的で二つ三つの道具を別々に動かしていて、それらが食い違うことにうんざりしているチームです。顧客が増えて、周りに聞いて回るだけでは何が起きているか追えなくなった頃から、いちばん効いてきます。

サイトを見る Prodantix: prodantix.com