Newt FormAppを使用してお問い合わせフォームを最強にする

こんにちは。Relicでインターンとしてエンジニアをしているhayataです:boy_tone2:今回は、ヘッドレスCMS「Newt」を使用してみました。

実際に使用してみて感想や他のサービスに比べて優れている点など紹介していきたいと思います。

## 使用方法について

まず初めに、アカウントの登録から進めていきます。下記にアクセスをしてください
https://www.newt.so/
「無料ではじめる」ボタンをクリックして新規スペースを作成してください
![スクリーンショット 2023-02-06 16.16.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125949/f4cf2233-e6f3-cb21-3d89-0c2f42a1c0a9.png)

![スクリーンショット 2023-02-06 16.15.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125949/4a4b1994-6ba2-66f9-4efe-5bb4b04e641e.png)

ここで注意点として、スペースUIDは後から変更できないので登録する際には使用する際にできるだけわかりやすい命名にした方が良いかと思います。

スペースを作成すると下記の画像なような画面に遷移すると思います。これで「Newt」を始める準備は整いました。
とにかく「Newt」はUIがめちゃくちゃ良いです！個人的には他のCMSよりも群を抜いてると思います。
![スクリーンショット 2023-02-06 16.18.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125949/b88ada71-dffe-fb97-caf8-548e2c0c2b0d.png)

早速、「Appを追加」ボタンをクリックして、「タイプを選択して追加」を選びます。
そうすると、「Form App」を選択して「追加」ボタンをクリックします

![スクリーンショット 2023-02-06 16.29.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125949/4311e5fe-a219-64b5-61d8-c3a64dba69e7.png)

App名、AppUID、Appアイコンをそれぞれ設定してください。こちらは後で変更できるので安心してください:airplane:

![スクリーンショット 2023-02-06 16.38.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125949/88f9fc84-2656-1a5a-de53-549decef62ae.png)

設定が完了すると下記の画面になると思います。
![スクリーンショット 2023-02-06 16.48.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125949/af259e1e-47e4-432a-6bb9-173341f2ee5f.png)

ここからコンタクトフォームに関する設定をしていきます。今回は細かな設定もしていくので簡易的で大丈夫という方はこれから説明する部分で必要な部分だけを確認して進めてください。


## フォームの設定について

「フォームの作成」ボタンをクリックして、フォーム名の入力をしてください。
![スクリーンショット 2023-02-06 17.53.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125949/38109407-336d-ba7e-5d4f-fab430d401b7.png)

入力をするとセットアップの画面に遷移すると思います。
セットアップ画面にはエンドポイントが設けられています。下記にサンプルのコードを記入しておくので確認してみてください（セットアップ画面にも記入されているのでそちらを参照した方が良いと思います）

```
<form method="post" action="エンドポイント">
    <input type="text" name="Full name" />
    <button type="submit">Submit</button>
</form>
```

簡単にまとめると、フォームのaction属性にエンドポイントを貼るだけでお問い合わせフォームが完了するということです。

ここからは細かな設定をしていきます。

### カスタムリダイレクト設定

formを送信した際に遷移する画面を指定したいときは、「カスタムリダイレクトを有効にする」を有効にする必要があります。リダイレクトURLには遷移先のURLを記入するだけで大丈夫です。簡単にリダイレクトの設定もできるのでぜひ活用してみてください。
* 実際に使用していて、保存に失敗することがあったので一つずつ保存すると保存がうまくいったりしたので保存に失敗した方は試してみてください。

![スクリーンショット 2023-02-07 14.10.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125949/2499f0db-5638-e732-a4f0-7c0bc068fa84.png)

https://www.newt.so/docs/form-app-custom-redirect

### 自動返信メール設定
メールが来た際の自動返信メールの設定をしていきます。下記のように件名と本文を入力することで自動返信メールを作成することが簡単にできます。
![スクリーンショット 2023-02-07 14.18.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125949/bc6cc5f4-a035-068f-9d81-5155be4a71d8.png)

##### 注意点
自動応答を起動させるためにはinput要素のname属性を`email`とする必要があるそうで、`mail`でも試してみましたがうまく動作せず、`email`と正しく記入しないと動作しないとのこと。
下記のドキュメントにも書いてありますので詳しくみたい方は見てみてください。

https://www.newt.so/docs/form-app-autoresponse-mail

##### 本文の部分について
下記をうまく使いこなせばある程度のカスタマイズはできるのでこの辺もありがたいです。
自動返信メールのドキュメントにも書いてある内容なのでそちらも参考にしてみても大丈夫です
```
// inputのname属性にnameを指定した場合、取得できる値
{ submission.name }

// inputのname属性にcompanyを指定した場合、取得できる値
{ submission.company }
```

### 受信通知メール設定
メールが来た際の通知を指定したメールアドレスに送る設定をしていきます。件名と本文を入力することで自動返信メール同様に設定することができます。
![スクリーンショット 2023-02-07 14.38.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125949/a64127f7-0d99-a890-af4b-6ab9f990e086.png)

本文の設定の仕方は自動返信メールと同じなので省略させて頂きます。

https://www.newt.so/docs/form-app-notification-mail

これでform関係の設定は終了です！お疲れ様でした:tada:
最後にSlackの連携を紹介して設定周りのお話は終了したいと思います。

## Slackとの連携について
Slackとの連携をするにあたって必要になるのが「Zapier」というものが必要になってきます。

##### Zapierについて

https://zapier.com/how-it-works

これからやることは
Newt FormAppとZapierを連携してから、ZapierとSlackを連携することによってNewt FormAppとSlackの連携ができるというものになっています。

早速NewtとZapierの連携をしていきます。

##### Zapierの連携に必要なもの
* Space UID
![スクリーンショット 2023-02-07 15.14.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125949/4e2d726f-8542-7334-2ec4-d0fa6c3ac8cf.png)
* Newt API Token （※取得対象にするAppが 全てのApp になっていること）
![スクリーンショット 2023-02-07 15.16.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125949/f15339d1-8fea-8c10-632d-8240c69cef46.png)
![スクリーンショット 2023-02-07 15.17.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125949/d0fb0713-155b-ff63-3302-6af6a37abb03.png)

* Zapierのアカウント
→https://zapier.com/app/dashboard
→上記のURLからアカウントを作成してください
* メッセージが1件以上登録されたフォーム

注意点は「メッセージが1件以上登録されたフォーム」じゃないと動作しないということです。必ずフォームにはメッセージがある状態から進めるようにしてください

必要なものが揃ったら下記のドキュメントに沿って、「Zapierがsubmission（投稿データ）を見つけられる」まで進めてください
https://www.newt.so/docs/form-app-zapier-integration

投稿データを見つけれるようになったら、Actionを追加していきます。
このActionでSlackを選択します

![スクリーンショット 2023-02-07 15.20.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125949/2ca6e7f6-1e2a-0d10-ced4-96f656b17948.png)

次にEventの部分で「Send Channel Message」を選択して、「Continue」ボタンをクリックして次に進みます。

![スクリーンショット 2023-02-07 15.22.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125949/7a7f7eb0-f53b-734e-59f8-2d6c7864208b.png)

通知を送りたいチャンネルがあるSlackアカウントを選択してください
![スクリーンショット 2023-02-07 15.25.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125949/8313014b-2f54-ced0-c39a-7d2e024137b1.png)

最後に設定をしていきます。
通知を送りたいチャンネルの設定とメッセージテキストの設定をしていきます。

![スクリーンショット 2023-02-07 15.27.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125949/e2a6f717-5e96-2787-b4fe-c5001fae7a36.png)

メッセージテキストに関しては自分が欲しい情報を指定してあげるのがいいと思います。
あまり選択しすぎると文章が縦長になってしますので最低限にするのをオススメします。c

下記のようにメンションをつけることもできます。「userID」にはメンションしたい人のSlackのuserIDを使用します。
![スクリーンショット 2023-02-07 15.32.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125949/9c3eb97d-7b22-3053-280f-2cfd90fecd5c.png)

下記にZapierのメッセージのカスタマイズの記事を載せておくので参考にしてみてください

https://blog.pirox.dev/2020/04/27/071145#%E3%83%A1%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%B3

これであとはZapierのテストが通れば完了です！
お問い合わせが来た際にSlackに通知が来ると思います
おめでとうございます:confetti_ball:

## Newtの良い点
* UI・UXが優れている点
* 各設定のしやすさ
* ドキュメントが充実している点
* 無駄なコードを書く必要がない
* 他のアプリケーションとの連携にも優れている
* カスタマーサポートの対応が早い点

### 実際に使用してみての感想
今回使用してみて、Newtが好きになりました。まだリリースされたばかりで使用している方の記事はなかったので実装する際に詰まった時は大変でしたが、ドキュメントを見たりして実装を終えました。
実際にエラーが出た際にもNewtにお問い合わせしたところすぐにエラー対応をしてくださり、カスタマーサポートのレベルが高いのもNewtの良さだと思います。個人的にはサイトのちょっとしたところに花火があったりとワクワクさせてくれる部分が最高です！
Newtの記事、第一号として丁寧に書かせて頂きましたがまだまだ実装していないことがあり、独自のドメインを設定した際には記事に追記させて頂きます。

Newtが早く有名になることを願っています

### 新卒採用
株式会社Relicでは、エンジニア職の新卒採用を積極的に行なっております。
少しでもご興味がある方は、Relic採用サイトからエントリーください！

https://relic.co.jp/categories/job_2302?utm_source=qiita&utm_medium=article&utm_campaign=qiita_article

### 採用のお知らせ
株式会社Relicでは、フロントエンドエンジニア•モバイルアプリエンジニアを積極的に採用中です。
またRelicでは、地方拠点がありますので、U・Iターンも大歓迎です！🙌
少しでもご興味がある方は、Relic採用サイトからエントリーください！

https://relic.co.jp/categories/job_4?utm_source=qiita&utm_medium=article&utm_campaign=qiita_article

https://relic.co.jp/categories/job_12?utm_source=qiita&utm_medium=article&utm_campaign=qiita_article