> For the complete documentation index, see [llms.txt](https://docs-embed.anyflow.jp/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-embed.anyflow.jp/solution-editor/triggers/outgoing/my-event.md).

# My Eventトリガー

## **概要**

My Event を使用すると、自社プロダクトで発生したイベントをもとに Anyflow のソリューションを実行することができます。

My Event を使用したソリューションを実行するまでの流れは次のようになります：

<table><thead><tr><th width="40">#</th><th width="457.05859375">内容</th><th>場所</th></tr></thead><tbody><tr><td>1</td><td>My Event を作成する</td><td>Anyflow Embed 管理画面</td></tr><tr><td>2</td><td>ソリューションのトリガーで使用する My Event を選択しデプロイ</td><td>Anyflow Embed 管理画面</td></tr><tr><td>3</td><td><strong>My Event エンドポイントにAPIリクエストを送信する</strong></td><td><strong>自社プロダクト</strong></td></tr><tr><td>4</td><td>My Event を使用したソリューションが実行される</td><td>Anyflow Embed</td></tr></tbody></table>

{% hint style="success" %}

### エンドユーザーでのインストールは必要です

他のトリガーと同様、エンドユーザーがソリューションをインストールしている場合のみ実行されます。

エンドユーザーがソリューションをインストールしていない場合、My Event のAPIリクエストを送信してもソリューションは実行されません。
{% endhint %}

## **My Event を作成する**

My Event は管理画面から作成できます。

My Event を作成するためには以下の情報が必要です。

<table><thead><tr><th width="95.9140625">プロパティ</th><th>説明</th></tr></thead><tbody><tr><td>名前</td><td>My Event の表示名です。管理画面上の UI に表示する目的で使用します。</td></tr><tr><td>キー</td><td>My Event を識別するためのキーです。My Event エンドポイントへのリクエストに指定します。</td></tr><tr><td>スキーマ</td><td>My Event のペイロードの構造を表すスキーマです。My Event トリガーの変数の型として使用します。任意のスキーマを指定することができます。</td></tr></tbody></table>

ここでは例として、次のように設定します。

<table><thead><tr><th width="250.421875">プロパティ</th><th>値</th></tr></thead><tbody><tr><td>名前</td><td>ユーザーが作成された時</td></tr><tr><td>キー</td><td>user_created</td></tr><tr><td>スキーマ</td><td>{<br>"user_name": "john",<br>"is_admin": false<br>}</td></tr></tbody></table>

スキーマには有効な JSON を指定します。 JSON 内で指定した値（この例では `"john"` と `false`）はソリューションエディタ内での変数のサンプル値や、テスト実行時のテスト値として使用されます。

## **ソリューションのトリガーで使用する My Event を選択する**

My Event が送信されたときに実行したいソリューションのソリューションエディタを開き、トリガーとして「My Event トリガー」を選択してから使用する My Event を選択します。

My Event を選択すると、トリガーの変数として、選択した My Event のペイロードが使えるようになります。ペイロード変数の型は My Event を作成するときに指定したスキーマに従います。

ここでは例として、先程作成した `ユーザーが作成された時` を選択します。この My Event を選択すると、トリガーの変数として文字列型の `user_name` 変数と、論理型の `is_admin` 変数をプロパティとして持つ `ペイロード` 変数が使用できるようになります。

{% hint style="success" %}

### 複数のソリューションを同時に実行する

同じ My Event を複数のソリューションのトリガーとして設定することもできます。そうした場合、My Event が送信されたときに以下を満たす全てのソリューションが実行されます。

* その My Event をトリガーに使用していること
* エンドユーザーがソリューションをインストールしていること

例えば、\
My Eventを使用したソリューション A, B, C が存在する状態で\
エンドユーザーが A, B をインストールしていた場合、\
My Eventを実行するとA, Bが実行されます。
{% endhint %}

## **My Event エンドポイントにリクエストを送信する**

以下の My Event エンドポイントに対してリクエストを送信することで、指定した My Event を使用しているソリューションを実行することができます。

**`https://for-product-api.anyflow.jp/sdk/send_my_event`**

My Event エンドポイントへのリクエストには[アクセストークン](/solution-editor/triggers/outgoing/my-event/access-token.md)が必要です。指定されたアクセストークンに紐づくエンドユーザーのソリューションが実行されます。

リクエストボディには次のような JSON を指定します。

```json
{
  "key": "user_created",
  "payload": {
    "user_name": "taro",
    "is_admin": true
  }
}
```

`key` には実行したい My Event のキーを、 `payload` には My Event のペイロードとして使用する値を指定します。ペイロードは My Event のスキーマとして指定した JSON と同じ構造でなければなりません。

リクエストが受理されると、アクセストークンに紐づいたエンドユーザーの、送信した My Event （この例では `ユーザーが作成された時`）を使用しているソリューションが全て実行されます。

### **404エラーとなるケース**

レスポンスが404エラーとなり「my\_event\_not\_found\_or\_stopped」というメッセージが返却される場合は、以下の状況が考えられます。

* 指定した My Event が見つからない
* 指定した My Event を使用するソリューションが存在しない
* 指定した My Event を使用するソリューションをエンドユーザーがインストールしていない
* 指定した My Event を使用するソリューションをエンドユーザーが無効にしている

なお、My Event リクエストに対するレスポンスは基本的に「Anyflowサーバーが正しいリクエストを受け取れたかどうか」のみを判定して返却しています。

正常（200）の場合でもエラー（404）の場合でも、レスポンスはソリューションの処理結果を待たずに瞬時に返却されます。

{% hint style="success" %}

### ヒント

詳細なAPI仕様は[APIリファレンス](/anyflow-api/end-user-api.md)をご確認ください。
{% endhint %}

## **TIPS : エンドユーザーでのトークン入力等を省く方法**

ソリューション内で自社プロダクトへのアクセスを行う場合、自社プロダクトのコネクタがまだAnyflow上に実装されていなければ、[HTTPアクション](/solution-editor/actions/api-call/http.md)で自社プロダクトに接続することができます。\
その際、エンドユーザーがウィザードで認証トークンの値を入力することが想定されます。

<figure><img src="https://files.readme.io/209c4c4-image.png" alt="" width="375"><figcaption></figcaption></figure>

しかし、自社プロダクトにログインしているエンドユーザーが、再度自社プロダクトの認証を行うのは手間に感じるかもしれません。

この場合、Tokenの値をエンドユーザー変数で取得するのではなく、My Event のペイロードに含めてしまえば、エンドユーザーの入力は不要になります。

<figure><img src="https://files.readme.io/abea818-image.png" alt=""><figcaption></figcaption></figure>

My Event は自社プロダクトの内部処理からリクエストできるため、tokenの存在をエンドユーザーが意識することなくソリューションを実行することが可能です。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs-embed.anyflow.jp/solution-editor/triggers/outgoing/my-event.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
