カツプロ
ログイン
← 投稿一覧

コーダー・デザイナーの外注営業メールは、お問い合わせフォームの確認画面で送る人に選ばせる

かつ

かつ

2026/09/17

カツプロ 外注の売り込みは送る人に選ばせる コーダー・デザイナーの営業メールを確認画面で 本物のご依頼は取りこぼさない(右に2つの送信ボタンがある確認画面)

「Webコーダーとして活動しております」「外部パートナーとしてお力添えできれば」。

制作会社のお問い合わせフォームには、こうした外注の売り込みが届きます。エールクエストのフォームにも、1通届きました。

前回、相互リンクの依頼をお問い合わせフォームの確認画面で断る仕組みを作りました。

お問い合わせフォームの確認画面で営業メールを断る|相互リンクの依頼を記事ネタにす...相互リンクの依頼や営業メールを、お問い合わせフォームの確認画面で先に断る方法。記事ネタにす...pro.alcuesto.jp

今回は、その仕組みをコーダー・デザイナーの外注の売り込みにも広げました。カツプロのお問い合わせフォームと、公開準備中のエールクエストの新しいサイトのフォームに入れています。

ただ、相互リンクと同じやり方では困ることが1つありました。本物のお客さまのご依頼まで、営業扱いしてしまうおそれがあることです。この記事では、その対策も含めて、実際の画面と仕組みをそのまま載せます。

届いた1通を、分解してみる

まず、届いた売り込みメールがどういう形をしていたかを書きます。送った方が特定できる情報(名前・連絡先・ポートフォリオのURL・サイトの文章そのもの)は出しません。

形として目立ったのは、次の6つでした。

  1. 書き出しが「ご担当者様」「突然のご連絡失礼いたします」
  2. こちらのサイトのキャッチコピーを引用して、「深く共感いたしました」
  3. 見出しで区切られた章が7つ(連絡した理由/私のストーリー/スキル/意識していること/Web制作を始めた理由/制作実績/最後に)
  4. 「もし現在、〜などございましたら、少しでもお力添えできれば嬉しく思います」という段落が、同じ文面のまま2回出てくる
  5. ポートフォリオのURLと、見るためのIDとパスワードが、本文に3回書かれている
  6. 強みとして並ぶのは「修正依頼には2〜3時間以内に返信」「ガントチャートで進捗共有」「納期3日前に提出」

納期や進捗の速さを強みにする売り込みについては、以前こちらに詳しく書きました。

コーディングの営業メール7通を比較|納期の速さは、もう強みになりませんコーディング営業メール7通の納期を比較。16ページで1ヶ月半、6ページで3週間。実際はFigma支給...pro.alcuesto.jp

ここで大事なのは中身の良し悪しではありません。売り込みのメールには、ふつうのご依頼にはまず出てこない言葉が、いくつも重なって入っているということです。「コーダーとして活動しております」「外部パートナー」「ポートフォリオ」。この重なりを、フォームで見分けに使います。

1語で決めず、「点数」で見分ける

相互リンクの依頼は、「相互リンク」という言葉が入っていれば、ほぼ間違いなく依頼です。だから1語で判定しています。

外注の売り込みは、そうはいきません。

  • 「社内のリソースが足りないので、サイトの作り直しをお願いしたい」
  • 貴社の実績を拝見して、ぜひお願いしたい」
  • 「イラストレーターのポートフォリオサイトを作ってほしい」

どれも本物のご依頼ですが、売り込みに出てくる言葉が混ざっています。1語で決めると、この方たちを営業扱いしてしまいます。

そこで、言葉ごとに点数を付けて、合計で判定することにしました。

種類 点数
売り込みにしか出にくい言葉 「コーダーとして活動しております」「外部パートナー」「外注先として」「ポートフォリオ」「実績は下記より」「営業ではありません」「Basic認証」 1つにつき2点
売り込みによく出るが、ふつうの問い合わせにも出る言葉 「ご担当者様」「突然のご連絡」「拝見させていただき」「お力添え」「進捗共有」「修正対応」「貴社」 1つにつき1点

合計が3点以上のときだけ、「外注の売り込みかもしれない」と扱います。2点の言葉が1つだけ、1点の言葉が2つだけでは反応しません。

作った判定を、例文で試しました(カツプロ調べ。例文は自分で作ったもので、届いたメールは伏せ字にして入れています)。

例文 点数 判定
届いた売り込みメール(伏せ字) 17 売り込み
「フリーランスのデザイナーとして活動…外注先として…ポートフォリオ」 8 売り込み
「ご担当者様 リソースは足りていますか?コーディング代行…対応可能な枠」 7 売り込み
「社内のリソースが足りないので、リニューアルをお願いしたい」 0 ふつう
「貴社の実績を拝見して、ぜひお願いしたい。修正対応は…」 2 ふつう
「ポートフォリオサイトを作ってほしい」 2 ふつう
「ログインできなくなりました」 0 ふつう

売り込み3通はすべて反応し、本物のご依頼4通はどれも反応しませんでした。

それでも、言葉で見分ける以上、間違いはゼロにできません。そこで次の工夫が要ります。

止めずに、送る人に選んでもらう

相互リンクの依頼のときは、確認画面にお断りを出し、「上記を了承して送信する」のボタン1つにしていました。

外注の売り込みのときは、ボタンを2つにしました。

エールクエストの確認画面。黄色の枠に「外注のご提案・営業のご連絡について」と出て、下に「営業・ご提案として了承して送信する」と「制作のご依頼・ご相談として送信する」の2つのボタンがある

※画面の名前・メールアドレス・本文は、説明用に入れた架空のものです。

黄色の枠に書いていることは、次の4つです。

  1. コーダー・デザイナーなどの外注のご提案や、営業を目的としたご連絡には、お返事していないこと
  2. いただいたご提案の内容は保存し、営業メールの傾向を紹介する記事の材料として、個人や会社が特定できない形で使う場合があること
  3. 制作のご依頼・ご相談なら、「制作のご依頼・ご相談として送信する」を選んでほしいこと
  4. 営業・ご提案に当たる内容は、どちらのボタンで送信された場合も、上記にご了承いただいたものとして扱うこと

見分けを間違えて、本物のお客さまにこの枠が出ても困りません。読んで「自分は依頼する側だ」と分かれば、青いボタンでそのまま送れます。送信を止めないので、取りこぼしが起きません。

スマホでは、ボタンが縦に並びます。

スマホで見たエールクエストの確認画面。お断りの枠の下に入力内容があり、いちばん下に「入力に戻る」「営業・ご提案として了承して送信する」「制作のご依頼・ご相談として送信する」のボタンが縦に並ぶ

カツプロのフォームでも、同じ形です。

カツプロの確認画面。同じ黄色の枠と、2つの送信ボタンが出ている

どちらを押したかで、扱いを変える

押したボタン 保存 状態 運営への通知 完了画面
営業・ご提案として了承して送信する する 最初から「迷惑」 しない お返事はいたしません
制作のご依頼・ご相談として送信する する ふつうのお問い合わせ する(「売り込みの可能性あり」と一言つけて) 折り返します

営業として送られたものは、管理画面に「営業(外注の売り込み)」として残ります。通知が来ないので、読む手間もかかりません。

カツプロの完了画面。「送信を受け付けました。外注のご提案・営業のご連絡のため、お返事はいたしません。」と出ている

「ご依頼・ご相談」のほうを選んで送ってくる営業も、いると思います。その場合もふつうに届くので、こちらで読んで判断します。それでも、お断りの枠が表示された確認画面から送っているので、記事の材料に使う了承は取れています。

ロボットが送ってきたら、どうなるか

ここは前回と同じ仕組みです。

  • 確認画面を出すときに、サーバーがその場限りの「合図」を発行して覚えておく
  • 送信のときに合図を照らし合わせ、合わなければ保存しない(確認画面から30分以上たった送信も、同じ合図での2回目も受け付けない)
  • 保存するのは、確認画面を出したときにサーバーが預かった内容

外注の売り込みに合わせて、1つだけ足しました。どちらのボタンを押したかが届いていない送信は、「営業」として扱います。ボタンを押さずにデータだけ送ってくるのは、人ではなくプログラムだからです。

エールクエストのサイトは Astro で作った静的なサイトなので、ここだけ素のPHPで受けています。流れは次のとおりです。

  1. 「入力内容を確認する」を押すと、入力をサーバーへ送る(stage: "confirm"
  2. サーバーが入力を確かめ、相互リンク/外注の売り込みを見分け、合図を発行する。入力はサーバーのセッションに預かる
  3. 画面は、返ってきた結果に合わせて枠とボタンを出し分ける
  4. 送信ボタンは、合図と押したボタンの種類だけを送る(stage: "send")。中身は送り直さない

送信のところは、これだけです(エラーの文言など一部を省略しています)。

$draft = $_SESSION['contact_draft'] ?? null;
$token = (string)($in['token'] ?? '');
if (!is_array($draft) || $token === ''
    || !hash_equals((string)($draft['token'] ?? ''), $token)
    || time() - (int)($draft['at'] ?? 0) > 1800) {
    unset($_SESSION['contact_draft']);
    reply(409, ['ok' => false, 'expired' => true]);
}
unset($_SESSION['contact_draft']); // 二重送信させない

$data = $draft['data'];
$looksSales = (bool)($draft['sales'] ?? false);
// 「ご依頼・ご相談」を選んだときだけ、ふつうの問い合わせにする。値が無ければ営業
$sales = $looksSales && (string)($in['as'] ?? '') !== 'consult';

セッションの Cookie は、フォームのフォルダの中だけで使い、JavaScript からは読めず、よそのサイトからの送信には付かない設定(httponlysamesite=Strict)にしています。

エールクエストの確認用サイトで、実際に試した結果です。

  • 確認画面を飛ばして送信だけを送る → 保存されず「確認画面の有効期限が切れたか、送信の手順が正しくありません」
  • 確認画面を通して、ボタンの種類を付けずに送る → 「営業(外注の売り込み)」「迷惑」で保存され、通知は出ない
  • 同じ合図でもう一度送る → 保存されない

試した記録は、確かめたあとに消しています。

送る側の人へ、ひとつだけ

この記事は、売り込みを送る人を責めるためのものではありません。ただ、届いたメールを読んで、ひとつだけ気になったことがあります。

ポートフォリオを見るためのIDとパスワードが、メール本文にそのまま3回書かれていました。

お問い合わせフォームから送った文面は、受け取った会社の管理画面やメールに残り、誰が読むか分かりません。見られたくないものに鍵をかけているのなら、その鍵を不特定の相手に配るのは、鍵をかけていないのとあまり変わりません。

見せたい実績は、鍵をかけずに公開できる形にしておくほうが、読む側にも親切です。

まとめ

  • 外注の売り込みは、1語ではなく点数で見分ける。売り込みにしか出にくい言葉は2点、ふつうの問い合わせにも出る言葉は1点、合計3点以上で反応する
  • 見分けたら、確認画面にお断りと「記事の材料に使う場合がある」を出し、ボタンを「営業・ご提案として送る」「ご依頼・ご相談として送る」の2つにする
  • 送信を止めないので、見分けを間違えても本物のご依頼は取りこぼさない。どちらで送っても、枠を表示したうえでの送信になる
  • 確認画面を通らない送信は受け付けず、ボタンの種類が無い送信は営業として扱う

同じ仕組みを自分のサイトのお問い合わせフォームに入れたい方は、カツプロのお問い合わせからご相談ください。

この記事の著者・監修

カツ
生成AIエンジニア/フロントエンドエンジニア/舞台監督などなど

カツ

カツプロ運営者のカツです! AI・Web関連から、日常のことなど、私目線の回答も交えながらお伝えします!

この記事をシェア

note

スポンサーリンク

コメント(0)

まだコメントはありません。

コメントは Tier 1(有料)の機能です。ログインのうえアップグレードしてください。

こちらの記事も読まれています