SMS注文確認から注文番号と追跡コードを読み取る

注文確認のテキストメッセージは160文字のプレーンテキストです。メールのヘッダーもブランドカードも注文サマリーテーブルもなく、2つの数字が埋め込まれた単なる文字列です。その2つの数字とは、注文番号と追跡コードです。問題は、送信者ごとにこれら2つの数字の配置が異なることです。AmazonはUSPSで発送する場合とUPSで発送する場合で異なる形式を使用します。eBayの注文番号は12桁、Shopeeはそれより短い形式です。これらのメッセージをスクリーンショットして記録を残す場合(注文追跡、荷物のフォローアップ、月次の購入ログなど)、各メッセージで該当する番号を手動で探すことになります。

手入力をやめよう — AIに読み取らせるだけ
画像やPDFをアップロード — 10秒で構造化データに
今すぐ試す →
ダークブルーの背景に「SMS注文確認から注文番号と追跡コードを読み取る」と題したフラットベクターのヒーロー画像。下に3つのアイコンキャプション:ラベルのないメッセージバブル「ラベルなし、パターンのみ」、2列のテーブル「2列、どの送信者にも対応」、空白のテーブルセル「欠落コードは空白のまま」。

重要なポイント

  1. Amazonは注文番号を17文字のハイフン付きで表記し、eBayは12桁、Shopeeは9桁です。同じ情報なのに、3つの送信者で3つの互換性のない形式になっています。
  2. テンプレートベースの抽出では、送信者×配送業者の組み合わせごとに個別の解析ルールが必要です。3つのマーケットプレイスだけで数十のルールが必要になり、次の形式変更で全てが壊れてしまいます。
  3. 意味的抽出は、文字パターンではなくメッセージ内での役割に基づいて各番号を識別するため、1つのカラム設定でAmazon、eBay、Shopeeを1つのバッチで処理できます。

SMSの注文メッセージがメールの確認通知と異なる理由

メールの注文確認には構造があります。件名、送信者名、HTMLテーブル、そして何より便利なのは、メール解析ツールが学習して読み取れる一貫したレイアウトです。テキストメッセージにはそのようなものは一切ありません。SMSは1メッセージセグメントあたり160GSM文字という制限があるため、送信者はできるだけ少ない文字数に情報を詰め込まざるを得ません。「注文番号:」のようなラベルも、「追跡:」のようなヘッダーもありません。あるのはブランド名、注文ID、追跡リンクまたは追跡番号だけで、それらがすべて1本の連続した行に並んでいます。

そのため、SMSのスクリーンショットは、メールの確認通知とは異なる抽出課題になります。Mailparserのようなメールパーサーは、トランザクションメールの反復するHTML構造(フィールドラベル、テーブルセル、ヘッダー領域)に依存して抽出ルールを固定しています。SMSのスクリーンショットには、そうした目印が一切ありません。同じメッセージでも、異なるスマートフォンの画面(AndroidとiOS、フォントサイズの違い)で表示すると折り返し位置は変わりますが、基になる文字列は同一です。つまり、注文番号と追跡コードが形式パターンだけで識別される、フラットなテキストの並びです。

テーブルではない支払いスクリーンショットからデータを抽出することと同じ原理がここにも当てはまります。データは画像内に存在しますが、その位置はテンプレートによって保証されていません。違いは、SMSメッセージがその問題の最も簡素化された形であることです。UIの装飾も、メニューバーも、装飾要素もなく、必要な数字がどこかに埋め込まれた生のテキストだけがあります。

あなたもおそらく受け取ったことのある3つのSMS注文形式

Three side-by-side cards comparing SMS order formats: Amazon USPS, Amazon UPS, and Amazon Logistics, each with a message bubble and two check-marked rows showing the extracted Order Number and Tracking Code.

注文確認SMSの形式は、誰が送信したかによってまったく異なります。小売業者やマーケットプレイスによって情報の圧縮方法は異なり、配送を担当する配送業者によって追跡部分の構造が変わることもよくあります。ここでは、よくある3つの形式と、それぞれで2つの番号がどこにあるかを紹介します。

Amazon:配送業者によって変化するメッセージ形式

Amazonでは、アカウント設定でテキストによる発送状況の更新を有効にしている場合、注文通知がSMSで届きます。メッセージの形式は、どの配送業者が配送を担当するかによって変わります。これは、Amazonがメッセージ本文に配送業者名を直接埋め込むためです。

USPS発送の場合は、通常以下のようになります。

"Amazon: Your order 112-3456789-1234567 has shipped via USPS. Track: 9400 1112 3456 7890 1234 56"

ここでの注文番号は、Amazon形式の17桁(###-#######-#######)で、"order"という単語の直後に表示されます。追跡番号は、"9400"で始まる長い数字列(標準的なUSPSの追跡識別子形式)で、"Track:"の後に表示されます。

UPS発送では、異なる追跡番号形式が使用されます。

"Amazon: Your order 112-3456789-1234567 is out for delivery via UPS. Track: 1Z999AA10123456784"

UPSの追跡番号は"1Z"で始まり、その後に英数字が混在します(標準的なUPS形式)。一方、Amazonの注文番号は同じ17桁形式のままです。配送業者がAmazon Logisticsの場合、追跡番号は配送業者のプレフィックスがない、より短い英数字コードになることがあります。

実用的なポイント:AmazonのSMSでは、注文番号は常に17桁の###-#######-#######形式であり、追跡番号は"Track:"という単語の後に続きます。ただし、その長さと文字形式は配送業者によって異なります。メッセージがどの配送業者を参照しているかを知らなければ、「表示されている2番目の番号」を単純にコピーすることはできません。

eBay:出品者が提供する追跡情報、形式は様々

eBayのSMS通知は、出品者が商品を発送済みとマークし、追跡番号をアップロードしたときに生成されます。Amazonとは異なり、eBayは出品者がどの配送業者を使用するかを管理していないため、追跡番号の形式は大きく異なります。

"eBay: Your item (Wireless Headphones) shipped! Carrier: USPS. Tracking: 9400111899223456789012. Track at..."

eBayの注文番号は12桁の数字識別子であり、Amazonのようなハイフン区切りの形式ではありません。メッセージ内での表示方法も異なり、多くの場合「Order」または「Item」の前に表示され、商品名と同じ行に表示されることもあります。追跡番号は「Tracking:」というラベルの後に続き、配送業者が割り当てた形式がそのまま使用されます。

Amazonとの違いの一つは、eBayのメッセージでは確認通知が2つの別々のテキストに分割されることが多い点です。1つ目は出品者が配送ラベルを作成したとき(追跡番号は割り当てられるが、荷物はまだ発送されていない)、2つ目は配送業者が実際に荷物をスキャンしたときです。最初のメッセージのスクリーンショットには追跡番号は含まれていますが、実際の発送状況は示されていません。配送監視のためにこれらを保存する場合は、2つ目のメッセージを待ってください。

Shopeeおよび東南アジアの配送業者

Shopee(東南アジアと台湾で主流)は、注文確認SMSをよりコンパクトな形式で送信します。多くの場合、配送業者名が記載されず、1行にまとめられています。

「Shopee: 注文123456789はJ&Tで発送されました。追跡: JD0001234567890」

Shopeeの注文番号は9〜10桁の数字識別子です。J&T Express、Ninja Van、Pos Lajuなどの地域配送業者の追跡番号は、USPSやUPSと比較して短い英数字文字列を使用します(通常13〜16文字)。フィリピンとインドネシアの一部のShopee SMSメッセージでは、「Track:」ラベルなしで追跡番号が含まれ、配送業者名の後にインラインで埋め込まれています。

もう1つの主要な東南アジアのマーケットプレイスであるLazadaも、同様のコンパクトな形式に従っています。その注文番号は2文字のプレフィックスで始まることが多く(例:「LA-123456789」)、追跡番号はラベルなしで追加されるため、注文番号と追跡コードを長さと文字パターンのみで区別する必要があります。

同様の形式のばらつきは、SMS銀行アラートにも存在します — 加盟店名、金額、日付は、どの銀行が通知を送信したかによって位置が変わります。抽出の課題は同じです。データはテキスト内にありますが、その位置は標準化されていません。

1つのスクリーンショットから両方の番号を抽出する方法

円形のアイコンマーカーが矢印で接続された4段階の水平フロー図:スクリーンショットを撮る、2つのカラムに名前を付ける、アップロードして処理する、テーブルをエクスポートする。

送信者ごとの設定なしでこれらすべての形式バリエーションを処理するアプローチは、カスタムカラム抽出です。各形式のルールを書く代わりに、必要なもの(注文番号と追跡コード)を定義すると、抽出エンジンがメッセージテキストを読み取り、各値をその意味に基づいて特定します。位置ではなく、意味で判断します。

ワークフローは次のようになります。

1

スクリーンショットを撮る

SMSメッセージの標準的なスマホのスクリーンショット。メッセージの形式は問いません — Amazon、eBay、Shopee、その他の送信元でも構いません。

2

2つのカラム名を定義する

カラム名として「注文番号」と「追跡コード」を入力します。ルールも、正規表現も、配送業者ごとの設定も不要です。

3

アップロードして処理する

スクリーンショットをアップロードします。エンジンが画像内のテキストを読み取り、どの文字列が注文番号でどの文字列が追跡コードかを識別し、それぞれを正しいカラムに配置します。

4

テーブルをエクスポートまたは表示する

スクリーンショット1枚につき1行が生成されます。異なる送信元のスクリーンショットを20枚処理すると、20行の単一テーブルが得られます — 各行で注文番号と追跡コードが正しく照合されます。

テンプレートベースのツールが失敗する場面でこれが機能する理由は、意味的識別にあります。エンジンは、Amazonの注文番号が17文字のハイフン区切り文字列、eBayの注文番号が12桁の数字文字列、Shopeeの注文番号が9〜10桁の数字文字列であることを認識します — ただし、どのマーケットプレイスがメッセージを送信したかを知る必要はありません。テキスト構造とカラム名が提供するコンテキストに基づいて、「この購入を指す識別子」を最も表していると思われるパターンを検出します。追跡コードも同様に識別されます。配送業者名または「Track:」という単語の後の文字列、あるいはラベルのないメッセージでは、配送のお知らせに続く英数字の並びとして識別されます。

JPG/PNG/PDF AI抽出

ファイルは安全に処理され、保存されません。

プレーンテキストのSMSがAIによる処理に適している理由

SMSのスクリーンショットにはノイズが一切ありません。ナビゲーションバーも広告バナーも複数カラムのレイアウトも埋め込み画像もありません。暗いまたは明るい背景に160文字のテキストがあるだけです。これは、文書抽出が受け取れる「クリーンな」入力に最も近いものです。

同じSMSメッセージの2カラム比較:左側はセグメンテーション線で区切られた吹き出しにXと「ページセグメンテーションはノイズと認識」というラベル、右側は無傷の吹き出しに2つのハイライトされた数字と緑のチェックマーク、「画像全体を読み取る」というラベルが付いている。

従来のOCRエンジンがSMSテキストをうまく処理できないのには皮肉な理由があります。それは、より大きな文書向けに設計されているからです。ページをテキストブロック、行、単語に分割するOCRパイプラインは、160文字のスマホのスクリーンショットではしばしば失敗します。セグメンテーションのしきい値がフルページのレイアウトを想定しているためです。短い単一の段落は「ノイズ」として分類されたり、前処理中に切り詰められたりします。ビジュアルAIモデルは同じ方法でレイアウトのセグメンテーションに依存しません。画像全体を読み取り、テキストコンテンツを全体的に認識するため、SMSのような短くクリーンなメッセージはこのアプローチに特に適しています。

160文字という制限は、メッセージ内のすべてのテキストが関連性を持つ可能性が高いことも意味します。「細かい文字」のセクションも、プロモーションのフッターも、法的免責事項もありません。ブランド名、注文番号、追跡コード、配送業者名がメッセージの全内容です。その中から2つの特定の値を識別する必要がある抽出エンジンは、不要なフィールドが必要なフィールドを上回る一般的な請求書やレシートよりもはるかに高い信号対雑音比で作業しています。

これは、SMS抽出がすべての場合に完璧であるという意味ではありません。マルチセグメントSMSメッセージ(160文字の制限を超えるもの)は、電話機によって1つの長いメッセージに連結されますが、電話機によって連結方法が異なります。区切り文字を挿入するものもあれば、区切りなしでセグメントを結合するものもあります。連結されたメッセージのスクリーンショットには、再組み立て中にキャプチャされた場合、結合点に不完全な追跡番号が含まれることがあります。スクリーンショットで追跡コードが切り詰められているように見える場合、抽出では欠落した数字を再構築できません。制限は抽出方法ではなく、ソース画像にあります。注文確認の大半を占める標準的な単一セグメントメッセージの場合、テキストは完全で自己完結しています。

よくある質問

異なる送信元からの複数のSMSスクリーンショットを1つのバッチで処理できますか?

はい。同じカラム定義(「注文番号」と「追跡コード」)が、同じアップロードバッチ内のAmazon USPSメッセージ、eBay FedExメッセージ、Shopee J&Tメッセージで機能します。各スクリーンショットは個別の行として扱われ、AIが送信元や配送業者に関係なく、各メッセージから正しい値を独立して識別します。

SMSに追跡コードがまだ含まれていない場合はどうなりますか?

一部の販売者は、追跡番号が利用可能になる前に注文確認SMSを生成します。メッセージには注文番号が含まれますが、追跡コードは含まれません。「追跡コード」カラムを定義すると、メッセージに追跡識別子が存在しないスクリーンショットについては、そのセルは空白のままになります。番号を捏造したり、注文番号を追跡コードと誤認したりすることはありません。

注文発送後の配達通知SMSでも機能しますか?

はい。配達通知(「配達中」「配達済み」「配達試行」)には、元の注文確認と同じ追跡コードが含まれています。荷物のライフサイクルを追跡している場合は、配達通知のスクリーンショットから追跡コードを抽出し、元の確認メールの注文番号と照合できます。

番号ではなく短縮追跡リンクが含まれるSMSの場合はどうですか?

一部の配送業者やマーケットプレイスでは、生の追跡番号の代わりに短縮URL(amzn.to/xxxxなど)を含めます。エンジンはURLを読み取れますが、埋め込まれた追跡コードは、「追跡リンク」カラムを定義しない限りデフォルトでは抽出されません。配送業者のスタンドアロン追跡ページで数値コードを使用する必要がある場合は、リンクを一度開いて完全な追跡番号を表示し、その結果を2番目のスクリーンショットでキャプチャする必要がある場合があります。

SMS注文確認はわずか160文字のテキストですが、その160文字の中に、何を購入したか、どこにあるかを示す2つの情報が含まれています。形式は送信者によって異なり、追跡コードは配送業者によって変わり、注文番号はマーケットプレイスが選択した識別子形式の背後に隠れています。抽出方法が位置ではなく意味に基づいて読み取る場合、これらの違いはすべて問題になりません。

📮 contact email: [email protected]