# WorkOS + Brew

WorkOS のユーザー、認証、パスワードリセット、組織、ディレクトリ同期（SCIM）、接続、招待のイベントで、Brew のオートメーションを起動できます。

正規URL：https://brew.new/ja/browse/integrations/workos

- データの方向：データ取り込み
- 接続方式：Webhook シークレット
- エンタープライズ認証のトリガー

## 提供中の機能

- **イベントトリガー**：WorkOS のユーザー、認証、組織、ディレクトリ同期、接続のイベントで、Brew のオートメーションを起動します。

## WorkOS のイベントを、役立つメールに

WorkOS を接続すると、ユーザーの作成、メールアドレスの確認、パスワードのリセット、組織への参加、ディレクトリ同期によるプロビジョニングをきっかけに、ブランドらしいメールを送れるようになります。Brew は、18種類の WorkOS イベントをオートメーションのトリガーに変えます。

SSO、ディレクトリ同期、ログイン、パスワードリセットは、引き続き WorkOS が担当します。Brew が行うのは、イベントを受け取り、それに続くメールを作成して送信することだけです。


## 作れるもの

- ウェルカムメール：user.created は、WorkOS のユーザーがプロビジョニングされたときに発火します。authentication.email_verification_succeeded は、ユーザーがメールアドレスを確認したときに発火します。ウェルカムメールが2通届かないよう、トリガーはどちらか一方に絞ってください。
- パスワードリセット完了の確認：password_reset.succeeded は、リセットが完了したときに発火します。これは authentication.* の一部ではなく、WorkOS の最上位のイベントです。
- ログインの通知：authentication.magic_auth_succeeded はマジックリンクでのログインが完了したときに、authentication.password_failed はパスワードでのログインに失敗したときに発火します。受信者はどちらもユーザー本人で、IPアドレスやユーザーエージェントは、どちらのイベントでも差し込みタグとしては使えません。
- チームのオンボーディング：organization_membership.created と invitation.accepted は、どちらも誰かが参加したときに発火し、role を含みます。ウェルカムメールが2通届かないよう、トリガーはどちらか一方に絞ってください。
- 役割変更の通知：organization_membership.updated は、役割の変更など、メンバーシップが変更されたときに発火します。
- ディレクトリ同期のユーザー：dsync.user.created、dsync.user.updated、dsync.user.deleted によって、Brew のコンタクトをSCIMディレクトリと同じ状態に保てます。
- オフボーディングの通知：user.deleted と organization_membership.deleted は、ユーザーが削除されたときや、組織から抜けたときに発火します。

## 組織と接続のイベントでは、メールは送信されない

organization.created、organization.updated、organization.deleted、connection.activated には受信者が含まれません。Brew はこれらを受信者不明として「最近のイベント」に記録し、オートメーションは開始しません。

新しい組織について人にメールを送るには、organization_membership.created や invitation.accepted など、その人のアドレスを含むイベントを使ってください。

メールアドレスのないメンバーシップ、認証、ディレクトリのイベントでも、同じ WorkOS ユーザー、メンバーシップ、ディレクトリユーザーの実際のメールアドレスを、現在の接続で Brew がすでに把握していれば、処理を続けられます。


## Brew で WorkOS をセットアップする

- 「連携サービス」を開いて WorkOS を選び、「Webhook URL を生成」を選択します。
- WorkOS のダッシュボードで「Webhooks」を開いてエンドポイントを作成し、Brew のURLを貼り付けます。
- 対応している18種類のイベントを購読します：user.*、authentication.email_verification_succeeded、authentication.magic_auth_succeeded、authentication.password_failed、password_reset.succeeded、organization.*、organization_membership.*、dsync.user.*、connection.activated、invitation.accepted。authentication.* を選択すると、Brew が対応していない認証イベントまで追加されるため、選択しないでください。
- エンドポイントの署名シークレットをコピーして Brew に貼り付け、「接続」を選択します。Brew は、WorkOS の署名ヘッダーと、タイムスタンプの許容誤差（180秒）を使って、各配信を検証します。
- WorkOS で、エンドポイントから user.created のテストイベントを送信します。Brew のステータスが「テストイベント待ち」から「接続済み」に変わります。Brew は、WorkOS のサンプルだと認識できたものはスキップしますが、認識できないサンプルは実際のイベントと同じように処理することがあります。そのため、テストは、そのトリガーでオートメーションを公開する前に送信してください。
- 接続すると、18種類すべてのイベントのトリガーが作成されます。イベントごとに有効・無効を切り替えるスイッチはありません。
- オートメーションを作成して WorkOS イベントを選択し、まだ下書きのうちにテストを送信します。一致するイベントが届いたときに実行されるのは、稼働中のオートメーションだけです。

## 対応している WorkOS イベント

Brew は、次の18種類のイベントに対応しています：

- user.created
- user.updated
- user.deleted
- authentication.email_verification_succeeded
- authentication.password_failed
- password_reset.succeeded
- authentication.magic_auth_succeeded
- organization.created
- organization.updated
- organization.deleted
- organization_membership.created
- organization_membership.updated
- organization_membership.deleted
- dsync.user.created
- dsync.user.updated
- dsync.user.deleted
- connection.activated
- invitation.accepted

## コンタクトの同期とパーソナライズ

実際のメールアドレスを含む検証済みのイベントを受け取ると、オートメーションで使われているかどうかにかかわらず、Brew はメールアドレスで照合してコンタクトを作成または更新します。データがある場合、Brew は姓名、workos_user_id、workos_email_verified を設定します。

認証イベントでは、イベントに応じて workos_last_verification_at、workos_last_failed_auth_at、workos_last_password_reset_at、workos_last_magic_auth_at のいずれかが設定されます。メンバーシップと招待のイベントでは workos_organization_id と workos_org_role が、ディレクトリのイベントでは workos_directory_user_id と workos_directory_id が設定されます。

user.deleted と dsync.user.deleted は workos_account_status を deleted に、organization_membership.deleted は removed_from_org に設定します。Brew がコンタクトを削除することはありません。

差し込みタグには、選択したイベントで宣言されているペイロードのスキーマを使います。すべてのイベントに、値があれば email、firstName、lastName、createdAt が含まれます。ユーザーのイベントには emailVerified が、組織のイベントには organizationName が、メンバーシップと招待のイベントには role が加わります。createdAt は秒単位の Unix タイムスタンプです。

WorkOS オブジェクトのIDは差し込みタグにはなりません。認証イベントに含まれるIPアドレスとユーザーエージェントも同様です。

ディレクトリ同期で取り込んだ従業員は、通常、マーケティングメールの受信にオプトインしていません。個別にオプトインしていない限り、アカウントに関する通知やトランザクションメールの受信者として扱ってください。


## イベントが表示されているのに、メールが送信されないのはなぜですか？

イベントの受信とメールの送信は、別々のステップです。一致するオートメーションが稼働中であることを確認してから、そのフィルター、実行履歴、受信者が対象に含まれるかどうか、送信ドメインを確認してください。組織と接続のイベントでオートメーションが開始されることはありません。また、認識できる WorkOS のテストサンプルは、テストイベントとして記録されます。


## 制限事項とトラブルシューティング

- Brew は、WorkOS のユーザー、組織、ディレクトリ、接続の作成や変更はできません。
- 401エラーとともに timestamp_invalid:out_of_tolerance が返される場合は、配信のタイムスタンプが180秒を超えてずれていたことを意味します。サーバーの時刻のずれを確認してから、WorkOS のダッシュボードで再配信してください。
- パスワードリセットのオートメーションが一度も起動しない場合は、エンドポイントが password_reset.succeeded を購読しているか確認してください。WorkOS が authentication.password_reset_succeeded を送ることはありません。
- すべての配信が署名の検証に失敗する場合は、WorkOS から現在のエンドポイントのシークレットをコピーして、接続し直してください。Brew で使うシークレットは、16文字以上である必要があります。
- 各メールの同意状況と目的を確認してください。WorkOS のユーザーを同期しても、プロモーションメールを送ってよいことにはなりません。

## 出典とセットアップガイド

- [WorkOS セットアップガイド](https://docs.brew.new/integrations/import/workos)
- [オートメーションを作成する](https://docs.brew.new/create-emails/build-an-automation)
- [差し込みタグ](https://docs.brew.new/create-emails/merge-tags)
- [Brew で送信できるメール](https://docs.brew.new/get-started/what-you-can-send)
- [WorkOS のイベント](https://workos.com/docs/events)

## 関連リンク

- [すべての連携サービス](https://brew.new/ja/browse/integrations.md)
- [新規登録](https://brew.new/ja/sign-up.md)
- ウェブサイト：https://brew.new
