ノーコード連携が5,000行で止まる理由 — 4つの壁をAPI連携で外す
見込み客リストが月5,000社まで育ったとします。1行ごとに初回メールの文面案をAIに生成させるフローを、ノーコード連携で組んでいたとします。
翌朝、シートを開くと2,137行目で止まっていました。エラー通知に書いてあるのは「フローが失敗しました」の一行だけ。なぜ止まったか、どの行で止まったかは、通知をどれだけ読んでも分かりません。
再実行のボタンを押すと、1行目からやり直しです。月のタスク残高は3,000を切っていて、今月はもう回りません。夜の10時に、2,000行を手作業に戻る。
頑張って組んだ自動化が、いちばん忙しい夜に手作業を増やす。これは比喩ではなく、実際に起きることです。
この夜に起きていることを分解すると、ノーコード連携の構造上の壁が4つ見えてきます。
壁1 回数の壁 — 1工程ごとに課金が積み上がる
タスク型のノーコードツールは、1工程の実行で1課金です。
1行の処理に3工程(行の読み込み → AI生成 → 書き込み)掛かる構成なら、5,000行で月15,000タスクを消費します。主要ツールの料金で概算すると、月1万タスクを超えたあたりで上位プラン(月額1〜2万円)が必要です。
しかも5,000行を1晩で回すと、1か月分のタスクを1晩で使い切ります。自動化の本質は「失敗しても気軽に回せる」ことなのに、1回ごとにお金が鳴る仕組みでは、試す回数そのものが減ります。
壁2 件数の壁 — 1回で運べる行数に上限がある
ノーコードのフローは基本「1トリガーで1行」です。5,000行なら5,000回のトリガーか、ループ機能で回すことになります。
ループには数百回程度の上限が設けられていることが多く、1回の実行時間が数分で頭打ちになる構成も珍しくありません。つまり5,000行は、構成の前提として「1晩で終わらない」のです。
しかも途中で止まった場合、再開は「続きから」ではなく「最初から」です。
壁3 見えなさの壁 — 失敗の理由が出てこない
壁2と組み合わさって致命的なのがこれです。多くのノーコードツールのエラー記録は「失敗」の一行で、行番号も理由も、遡って調べる画面も用意されていません。
2,000行目で止まった理由を知る方法は、ログを1個ずつ開いて見て回ることだけです。原因が分からないまま再実行すれば、同じ失敗をもう一度1,000行ぶん引き起こします。
手作業に戻る人の半分以上は、処理そのものではなく、この「理由が分からない」で心が折れています。
壁4 目録の壁 — 自社の処理はそもそも載っていない
ノーコードツールが繋げられるのは、接続先の目録に載っているサービスだけです。Google SheetsやSlackなら載っています。
しかし「自社の採点式で見込み度を計算する」「同じ会社名の重複行を1行にまとめる」「途中で止まったら続きの行から再開する」——こうした自社ルールは、どのツールの目録にも載っていません。
分岐を重ねて近い形には組めますが、3段を超えたあたりで設定画面は配線図のスパゲッティになり、半年後には誰も触れなくなります。
4つの壁の共通項
一つです。あなたとAIの間に、「代行業者」が入っていることです。
API連携とは「直接取引の窓口」である
ChatGPTの画面は、人間が使うための受付です。同じ厨房の奥には、プログラム専用の別の受付が用意されています。それがAPIです。窓口が違うだけで、奥にいるAIは同じです。
APIへの依頼は、JSONという定型の書式で渡します。封筒に宛名と本文を所定の欄へ書いて投函するようなもので、返事も同じ書式で戻ってきます。
ここで、ノーコードツールの正体が見えます。ZapierやMakeは、このAPI窓口への「代行」を請け負っている業者です。
- 対応アプリの目録 = 代行できる範囲の一覧
- タスク課金 = 代行の手数料
- 実行間隔の設定(15分ごと等) = 業者の受付時間
API連携とは、代行を抜いて直接取引することです。
GASで、300行ずつ刻みながら走らせる
ここからが実装です。置き場所にGoogle Apps Script(GAS)を選ぶ理由は4つあります。
- 無料であること
- ブラウザだけで動き、会社のPCに何も入れないこと
- スプレッドシートと最初から繋がっていること
- 実行の履歴とログが自動で残ること
GASには実行時間の上限があります(個人アカウントで6分、Workspaceなら30分)。だから300行ずつ区切って走り、どこまで終わったかをシートの列に刻みながら進めます。
// ==== 300行ずつ処理して、進捗をG列に刻む ====
const API_KEY = "sk-..."; // 自分のキーを貼る
const SHEET_ID = "...."; // スプレッドシートのID(URLの一部)
const SHEET_NAME = "リスト";
const BLOCK = 300; // 1回に処理する行数
function 文面案を生成() {
const ss = SpreadsheetApp.openById(SHEET_ID);
const sh = ss.getSheetByName(SHEET_NAME);
const last = sh.getLastRow();
const values = sh.getRange(2, 1, last - 1, 7).getValues(); // A〜G列
let done = 0;
for (let i = 0; i < values.length; i++) {
const row = values[i];
if (row[6] === "完了") continue; // G列が完了なら飛ばす=続きから再開できる
const prompt = `次の会社に送る初回メールの文面案を1通、200字で。会社名:${row[0]}`;
try {
const res = UrlFetchApp.fetch("https://api.openai.com/v1/chat/completions", {
method: "post",
headers: { Authorization: "Bearer " + API_KEY },
contentType: "application/json",
payload: JSON.stringify({
model: "gpt-4o-mini",
messages: [{ role: "user", content: prompt }]
}),
muteHttpExceptions: true
});
const data = JSON.parse(res.getContentText());
if (data.error) {
// 失敗の理由を、その行に残す
sh.getRange(i + 2, 7).setValue("失敗:" + data.error.message);
continue;
}
sh.getRange(i + 2, 6).setValue(data.choices[0].message.content); // F列に文面案
sh.getRange(i + 2, 7).setValue("完了"); // G列に印
} catch (e) {
sh.getRange(i + 2, 7).setValue("失敗:" + e.message);
}
done++;
if (done >= BLOCK) break; // 6分の上限に当たる前に自分から区切る
}
Logger.log(done === 0 ? "処理対象なし(全行完了)"
: done + "行を処理しました。続きはもう一度実行してください。");
}
書き換えるのは上の3か所(APIキー・シートID・シート名)だけです。
この道具が壁をどう外すかを、1つずつ対応させます。
- 壁1(回数): 課金が「工程ごと」から「使った文字量ごと」に変わります。1,000文字読ませて300文字書かせる1回の生成は、miniクラスのモデルで0.1円にも満たない計算です。5,000通でも数百円で済みます。
- 壁2(件数):
BLOCKで区切りながら、G列の「完了」を目印に続きから再開できます。最初からやり直す必要がありません。 - 壁3(見えなさ): 失敗した行だけに
失敗:理由が残ります。翌朝、3,000行目に「残高不足」とあれば、その1行だけ再実行すれば済みます。 - 壁4(目録): 自社ルール(採点式・重複まとめ・担当ごとの文言切替)は、日本語でプロンプトに書くだけです。目録に載っているかどうかは関係ありません。
移行するか、しないかを決める表
API連携が常に正解なわけではありません。次の表がすべて左側なら、ノーコードはまだ最適解です。
| 確認項目 | ノーコードのままでいい | APIへ移行の目安 |
|---|---|---|
| 月の実行回数 | 1,000回未満 | 5,000回以上 |
| 1回の処理件数 | 100行未満 | 1,000行以上 |
| ツール費用 | 月5,000円以下 | 月1万円を超えた |
| 失敗時の再実行 | 最初からでも困らない | 続きから再開したい |
右の列に寄る項目が1つでもあれば、この道具が回収します。全部左なら、この話は棚上げして構いません。表だけ覚えて帰れば、半年後の判断は速く済みます。
まとめ
止まった自動化を「頑張って直す」のではなく、止まり方が分かる形に設計し直す。これがノーコードからAPIへ移る本当の価値です。
- 課金は回数から従量へ
- 実行は一括から分割+再開へ
- 失敗は一行から行単位の理由へ
- 自社ルールは目録の外側から、プロンプトの中へ
この記事の元になった書籍では、APIキーの発行(5手)から接続テスト、混雑ルール(レートリミット)を守りながら朝6時に自動運行させる設定まで、通しで扱っています。
📗 営業の仕事をAIに任せろ — 見込み客リストから提案書まで、1人で回す営業自動化(Kindle・読み放題対象)
書籍の内容と読者特典については、こちらのサイトにまとめています。