Deep Knowledge(DeepThrive)

郵便番号から都道府県を自動入力!外部APIと連携するワークフロー構築ガイド

作成者: 岩田 早織|Oct 8, 2026, 10:22:23 AM

 Webフォーム入力によるデータ不備と業務の停滞 

Webフォームの入力項目を増やしすぎると、送信直前での離脱(フォーム離脱)が増加してしまいます。そのため、ユーザーの負担を減らす目的で「郵便番号」のみを入力させる運用が一般的です。

しかし、取得したデータが郵便番号のみで「都道府県」プロパティが空欄のままHubSpotに蓄積されると、運用上で次のような課題が生じます。

  • リード割り当ての停止
    都道府県データが存在しないため、地域ごとに営業担当者を決定する自動割り当てワークフローが途中で停止する。

  • セグメント配信の精度低下
    特定地域に向けたメール配信やセミナー案内の際、対象リストから漏れてしまう。

  • 手入力による工数とミスの増加
    担当者が都度、郵便番号から住所を調べて手入力するため、作業負担が増えるとともに表記ゆれ(例:「東京都」「東京」など)が発生する。

 外部データ連携による自動補完の仕組み

外部の郵便番号データベース(API)とHubSpotを連携させることで、これらの課題を自動的に解決できます。

  • 入力の手間を増やさずデータ補完
    ユーザーは郵便番号を入力するだけで、HubSpot内部で即座に都道府県が判明・補完されます。

  • 迅速なアクション
    正確な都道府県情報をもとに、担当者への通知やリード割り当てが即座に完了します。

  • 統一されたデータベースの維持
    標準化されたフォーマットでデータが保存されるため、リストの精度が維持されます。

 手法の比較:カスタムコードを使うメリット

HubSpot内でプロパティ値を処理・変更する方法には「標準機能」と「カスタムコード」の2通りがあります。
それぞれの特徴とデメリットを理解した上で選ぶことが重要です。
以下の表は、それぞれの仕組みやメリットをまとめていますので、参考にしてください。

項目 標準機能
(プロパティ設定 / フォーム機能)
カスタムコード
(Operations Hub利用)
仕組み HubSpot内部のデータやルールに基づき値を変更 外部APIと通信し、リアルタイムにデータを取得して変更
メリット

ノーコードで簡単に設定可能。


Operations Hubの有料契約が不要。

HubSpot内に存在しない最新の外部データを直接参照できる。


高度な条件分岐やデータ加工が可能。

デメリット

外部のデータベースを参照できない。


「郵便番号から都道府県を引く」ような辞書データを持てないため、今回のようなケースには対応不可。

Operations Hub Professional以上の契約が必要。


コード(Node.jsやPython)の記述が必要になるため、初期構築に一定の技術的知識を要する。

 

【今回の結論】
「郵便番号から都道府県を特定する」という処理は、HubSpot自体が全国の郵便番号辞書データを持っているわけではないため、標準機能だけでは実現できません。外部の最新データベースを参照できるカスタムコードアクションの利用が必須となります。

 具体的な設定手順(カスタムコード活用) 

外部の郵便番号検索API(例:Zipcloudなど)を利用し、コンタクトの都道府県プロパティを自動更新する手順です。

 Step1:プロパティの事前準備 

HubSpotのプロパティ設定画面(設定 > プロパティ)を開き、データ連携に使用する項目を用意します。

  • 郵便番号:単行テキスト(標準の zip プロパティ)

  • 都道府県:単行テキストまたはドロップダウン選択肢(例: state プロパティ)

 Step2:ワークフローの登録トリガーを設定 

「コンタクトベース」の自動化ワークフローを新規作成し、登録トリガーを設定します。

  • トリガー条件:「郵便番号プロパティの値が知られている(入力されている)」かつ「都道府県プロパティの値が知られていない(空欄)」

  • 必要なデータのみを処理対象にし、無駄な外部通信を抑えます。

 Step3:カスタムコードアクションの作成 

ワークフローのアクション追加から「カスタムコードを実行」を選択します(言語は Node.js または Python)。

  • 入力変数:HubSpotの「郵便番号(zip)」をコード内の変数に割り当てます。

  • API呼び出し:外部の郵便番号検索APIへリクエストを送信し、返ってきたレスポンスから都道府県名を取り出します。

  • データ出力:取得した都道府県名を、後続アクションで利用できる「出力変数」として定義します。



▼サンプルコード

const axios = require('axios');

exports.main = async (event, callback) => {
  const zipRaw = event.inputFields['zip'] || '';
  console.log('受け取った郵便番号(raw):', zipRaw);

  const zip = zipRaw.replace(/[^0-9]/g, '');
  console.log('数字のみに変換後:', zip);

  if (zip.length !== 7) {
    console.log('7桁ではないためスキップします');
    callback({ outputFields: { prefecture: '' } });
    return;
  }

  let prefecture = '';

  try {
    const res = await axios.get('https://zipcloud.ibsnet.co.jp/api/search', {
      params: { zipcode: zip },
      timeout: 5000
    });
    console.log('APIレスポンス:', JSON.stringify(res.data));

    if (res.data.results && res.data.results.length > 0) {
      prefecture = res.data.results[0].address1;
    } else {
      console.log('該当する郵便番号データがありませんでした');
    }
  } catch (err) {
    console.log('APIエラー:', err.message);
    if (err.response && (err.response.status === 429 || err.response.status >= 500)) {
      throw err;
    }
  }

  console.log('最終的なprefecture:', prefecture);
  callback({ outputFields: { prefecture: prefecture } });
};

  Step4:プロパティ値の更新アクションを設定 

カスタムコードアクションの直下に「プロパティ値をコピー」または「プロパティ値を設定」アクションを追加します。

  • コピー元:カスタムコードが出力したデータ(例: stateName)

  • コピー先:HubSpotの「都道府県」プロパティ

  Step5:テスト実行とワークフローの有効化 

 テスト用コンタクトに「1000001」などの郵便番号を入力し、ワークフローをテスト実行します。都道府県プロパティに「東京都」が正しくセットされることを確認したら、ワークフローをオンにします。 

 応用アイデア:外部データベース連携の発展活用

外部データベース(API)を活用したプロパティ更新の仕組みは、さまざまな業務プロセスに応用可能です。

  • 法人番号から企業情報を自動取得
    国税庁の法人番号公表サイトAPIと連携し、入力された法人番号から「正式会社名」「本社所在地」「設立年月日」をHubSpotの会社プロパティへ自動入力する。

  • IPアドレスからのアクセス地域判定
    Webサイト訪問者のIPアドレスから国や地域を判定する外部APIと連携し、該当地域の担当営業へ自動通知する。

  • 為替レートの自動適用
    金融データのAPIから最新の為替レートを取得し、外貨建て取引(ディール)の金額を日本円に自動算出してプロパティを更新する。