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

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

手入力をやめよう — AIに読み取らせるだけ
画像やPDFをアップロード — 10秒で構造化データに
今すぐ試す
登録不要 · カード不要 · 10秒で結果
SMSの注文確認テキストメッセージが表示されたスマートフォンの画面

重要なポイント

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

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

メールの注文確認には構造があります。件名、送信者名、HTMLテーブル、そして最も便利なことに、メール解析ツールが学習できる一貫したレイアウトがあります。テキストメッセージにはそのようなものは一切ありません。SMSは1メッセージあたり160GSM文字の制限があるため、送信者はできるだけ少ない単語に情報を詰め込む必要があります。「注文番号:」というラベルもなければ、「追跡:」というヘッダーもありません。ブランド名、注文識別子、追跡リンクまたは番号が、すべて1行に連続して書かれているだけです。

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

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

おそらく受け取ったことのある3つのSMS注文フォーマット

注文確認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:」というラベルなしで、配送業者名の後に追跡番号がインラインで埋め込まれています。

もう一つの主要な東南アジア市場であるLazadaも、同様のコンパクトな形式です。注文番号は多くの場合、2文字の接頭辞(例:「LA-123456789」)で始まり、追跡番号はラベルなしで追加されるため、長さと文字パターンのみで注文番号と追跡コードを区別する必要があります。

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

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

送信者ごとの設定なしでこれらすべての形式に対応するアプローチは、カスタムカラム抽出です。各形式のルールを記述する代わりに、必要なもの(「注文番号」と「追跡コード」)を定義するだけで、抽出エンジンがメッセージテキストを読み取り、各値がどこに現れるかではなく、その意味に基づいて特定します。

ワークフローは次のとおりです。

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文字のテキストがあるだけです。これは、ドキュメント抽出が受け取ることができる「クリーンな」入力に最も近いものです。

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

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

SMS抽出がすべてのケースで完璧とは限りません。160文字を超えるマルチセグメントSMSは、電話機によって連結方法が異なります。区切り文字を挿入する機種もあれば、区切りなしで結合する機種もあります。連結中のメッセージをスクリーンショットで撮影した場合、結合部分で追跡番号が不完全になる可能性があります。スクリーンショット内で追跡コードが途切れている場合、抽出処理で欠落した数字を復元することはできません。これは抽出方法の問題ではなく、元画像の制限です。大半の注文確認メールを占める単一セグメントのメッセージであれば、テキストは完全で自己完結しています。

よくある質問

異なる送信元からの複数の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]