---
title: お問い合わせの受信通知をChatworkで送信する
description: Kurocoは自由にAPIを作成でき、さらに外部のAPIにリクエストを送るプラグインを持っているため、外部システム連携に表示されていないサービスについても、カスタム処理やバッチ処理に動作を記述することで利用が可能です。本チュートリアルはその例として、Chatworkに投稿をするカスタム処理を自作し、お問い合わせの受信通知をChatworkへ投稿する方法について説明します。
---

## 概要
Kurocoは自由にAPIを作成でき、さらに外部のAPIにリクエストを送るプラグインを持っているため、外部システム連携に表示されていないサービスについても、カスタム処理やバッチ処理に動作を記述することで利用が可能です。  
本チュートリアルはその例として、ChatWorkに投稿をするカスタム処理を自作し、お問い合わせの受信通知をChatworkへ投稿する方法について説明します。

### 学べること
以下の手順でお問い合わせの受信通知をChatworkへ投稿します。
- [Chatworkの設定](#chatworkの設定)
- [Kurocoの設定](#kurocoの設定)
- [動作確認](#動作確認)

## Chatworkの設定
### ボット用のアカウントを作成する
Chatwork APIを利用した投稿の投稿者は、APIトークンを作成したアカウントになります。
そのため、まずは[Chatwork](https://www.chatwork.com/service/packages/chatwork/pre_register.php?plan=free&lang=ja&page=login)で、通知の送信元となるボット用のアカウントを作成してください。  

アカウントができたら、プロフィールから写真と名前を設定しておきます。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/2611a6795bf373130272b15b30320562.png)

### 通知が送付されるグループを作成する
つぎに、通知を受け取るためのグループチャットを作成します。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/2f50f917a19e1c038d1d9ed8b355a326.jpg)

準備ができたらグループチャットの設定からルームIDを控えておきます。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/a4fec81c5b691217281b73549e713706.png)

### APIトークンを取得する

[Chatwork APIへようこそ！](https://developer.chatwork.com/docs)にアクセスし、画面下部の[APIの利用申請]をクリックします。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/a72c21d193266d90d3072e1a0293be9e.png)

ボット用のアカウントでログインすると、[APIトークン](https://www.chatwork.com/service/packages/chatwork/subpackages/api/token.php)のページに遷移し、APIトークンの確認ができます。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/f86ab5b2522ab3b034e7d3b2549a1dea.png)

## Kurocoの設定
### APIトークンを保存する
Kurocoの管理画面にアクセスし、[環境設定] -> [シークレット]をクリックします。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/25b831fd4835ad993f02298629b9e8cf.png)

[追加]をクリックします。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/c51de1ecc8ead6fa837c6492757a7276.png)

以下のように入力して、[追加する]をクリックします。

|項目|値|
|:--|:--|
|名前|CHATWORK_API_TOKEN|
|値|Chatworkで取得したAPIトークン|

![Image from Gyazo](https://t.gyazo.com/teams/diverta/a20d882a89cb1204ace2421b56eddc0b.png)

### Chatworkに投稿をするカスタム処理を作成する
カスタム処理を利用して、Chatworkに投稿をする処理を自作します。  

[オペレーション] -> [カスタム処理]をクリックします。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/45a3b82e8fec3d1ad46a72c0bf8d394b.png)

[追加]をクリックします。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/471bc146570ff60efb362ece59b7fbe1.png)

以下のように設定します。

- カスタム処理は`{function}`のSmartyプラグインを利用して他のカスタム処理やバッチ処理から呼び出されることを前提としています。
- 通知送信先のroom_idと、送信する本文を、`room_id`と`text`の変数で受け取ります。
- `{return value=$status}`で処理の結果を返します。

|項目|値|
|:--|:--|
|タイトル|chatwork_post_message|
|識別子|chatwork_post_message|
|処理|以下の内容|

```smarty reference title="chatwork_post_message"
https://github.com/diverta/kuroco-documents/blob/main/sample_code/custom_function/function/chatwork_post_message.txt
```

![Image from Gyazo](https://t.gyazo.com/teams/diverta/97a244a7a0121530b2bbce76da40d5e0.png)

入力ができたら[追加する]をクリックしてカスタム処理を追加します。

### メッセージひな形を調整する
[オペレーション]->[メッセージひな形]をクリックします。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/337cb4628fc2f37ee59dc4658cd307f2.png)

[問い合わせ着信通知メール(管理者宛)]をクリックします。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/74024a7550367129d8790615f1acdd10.png)

本文の冒頭に以下の記述を追加します。  

```smarty
{*Chatwork通知*}
{capture name=chatwork_text_body}
[toall]
「{$inquiryHeader.inquiry_name}」へのお問い合わせが届きました。
内容を確認してください
{$smarty.const.ROOT_MNG_URL}/management/inquiry/inquiry_reply_edit/?inquiry_bn_id={$inquiry_bn_id}
{/capture}
{function name='chatwork_post_message' room_id="123456789" text=$smarty.capture.chatwork_text_body var=status}

{*メール通知*}
```

![Image from Gyazo](https://t.gyazo.com/teams/diverta/0b466f806b29696f68da79420ad309a0.png)

:::caution
room_idはご自身の環境のIDを利用してください。
:::

設定ができたら[更新する]をクリックして変更を反映します。  

#### TIPS
- メール通知を止めてChatwork通知のみにしたい場合は、[独自設定]から[メールの送信停止]に1をセットします。  
  ![Image from Gyazo](https://t.gyazo.com/teams/diverta/b43255e192879ef128775e90a6fc855c.png)
- Chatworkでメンションを`ToALL`にする場合は`[toall]`と書きます。  
- Chatworkでメンションを個人宛にする場合は`[To:{account_id}]`と書きます。

### フォーム基本設定を設定する
[キャンペーン]->[フォーム]をクリックします。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/90c0104f0063041211a36c7bef46c553.png)

フォームのタイトルをクリックします。  
![Image from Gyazo](https://t.gyazo.com/teams/diverta/00f449ac3c9e94e4b7f46bc9481ad3b1.png)

基本設定タブの配信先メールアドレスで、[通知する]にチェックを入れてメールアドレスとタイトルを入力します。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/49aed60abf6e495cb8a19f4ea9b2c97a.png)


## 動作確認
最後に動作確認をします。  
管理者宛の通知を有効にしたフォームへ回答の送信をすると、メールの通知に加えて、Chatworkチャンネルへの通知が行われます。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/57b48281a35a9775353628104d616eea.png)

以上でお問い合わせの受信通知をChatworkで送信できました。  

同様の方法でKurocoの任意の動作をトリガーにChatWorkへ投稿できますのでお試しください。  

## 関連ドキュメント
- [KurocoとNuxt.jsで、フォーム画面を構築する](/ja/docs/tutorials/setting-up-inquiry-forms/)
- [お礼メールをカスタマイズできますか？](/ja/docs/faq/can-i-customize-my-thank-you-e-mail/)
- [メッセージひな形に利用できる変数一覧](/ja/docs/reference/mail-variables/)
- [Smartyプラグイン](/ja/docs/reference/smarty-plugin/)
