Documentation Index

Fetch the complete documentation index at: https://help.dialpad.com/llms.txt

Use this file to discover all available pages before exploring further.

通話アクティビティフィールドのマッピング

Prev Next

レポートをカスタマイズするには、適切なカスタムデータが必要です。

[Dialpad Call Log] カスタムオブジェクトを使用して、トレンドや通話詳細を掘り下げて分析することが可能です。Salesforce に通話が記録されると、同システム内で [Dialpad Call Log] レコードが自動的に生成されます。

Note

この設定には、最新の Dialpad for Salesforce パッケージをインストールしてください。

対象ユーザー

この機能は、Dialpad SellDialpad Support ライセンス、Dialpad Connect の Pro、Enterprise プランでご利用いただけます。
[Dialpad Call Log] カスタムオブジェクトを使用する前に、この機能を有効にするために
カスタマーサービスまでご連絡ください。

詳細については以下をご確認ください。

Dialpad Call Log カスタムオブジェクト

[Dialpad Call Log] は、Dialpad パッケージによりインストールされ、Salesforce 内の通話メタデータを取得します。これにより、Salesforce 管理者が設定したコール情報とともに、通話アクティビティレコードが Salesforce に作成されます。

[Dialpad Call Log] オブジェクトを利用すると、Salesforce にコールレポートとダッシュボードが作成され、コンタクトセンターやエージェントの KPI を測定できます。

[Dialpad Call Log] のカスタムオブジェクトは、Salesforce のオブジェクトマネージャーで管理されています。

利用可能なフィールド

Dialpad は、Salesforce でマッピング可能な多様なフィールドを提供しています。

利用可能なフィールドとその定義は以下をご参照ください。

Note

[Call disposition notes] フィールドは使用されなくなるため、削除しても問題ありません。今後このフィールドにデータが入力されることはありません。

フィールド

フィールド

定義

Agent Name

通話オペレーターの表示名

AI Summary

通話の AI サマリー

AI Action Items

通話内で検出されたアクションアイテム

AI Call Purpose

AI が判定した通話の目的(AI Recap オブジェクトで確認可能)

AI CSAT

AI による CSAT スコア

AI Outcome

AI Recap とともに生成された通話の結果

AI Playbook adherence

エージェントが AI Playbook にどれほど従ったかを示す数値

Account Timezone

アカウントのタイムゾーン

Call Duration (In Seconds)

通話の合計時間(秒単位)

Call End Time

通話の終了日時

Call From

発信者の電話番号

Call Quality Rating

ユーザーが提供した MOS(通話品質)スコア

Call Recording URL

通話録音の共有可能なURL

Call Result

通話タイプの値

Call Start Time

通話が開始された時刻

Call To (First)

ダイヤルされた最初の電話番号

Call To

転送やルーティング後の最終受信者の番号

Call Type

通話の方向(受信、発信など)

CallId

通話 ID

Call Status

通話の現在のステータスまたは結果

Comments

通話中にエージェントが記入したメモ

Connected Duration

通話がオペレーターに接続されていた時間

Contact Timezone

連絡先のタイムゾーン

CSAT Score

CSAT スコア

Dialing Duration

通話が応答されるまでのダイヤル時間

Dialpad Agents

通話に参加した Dialpad エージェント

Dialpad Call Center

通話を処理した Dialpad コンタクトセンター

Due Date

通話の発生日

Hold Duration

発信者が保留状態にあった時間

IsDialpadCallLog

オブジェクトが Dialpad Call Log であることを確認 (常に [true] )

isCreatedFromDialpad

通話が Dialpad から発信されたかどうかを確認

isValidatedCall

2者間で1分以上会話が続いた場合に有効な通話として確認

Lead Timezone

リードのタイムゾーン

Notes

メモを記録するための長文入力欄

Object Name

Dialpad 連絡先の名前

Opportunity Timezone

商談のタイムゾーン

Parent Object Id

関連する Salesforce インスタンスの ID

PhoneNumber

Dialpad のターゲット番号

Powerdialer Assigned List

番号が割り当てられているパワーダイアラリストの名前

Powerdialer Dialed List

通話が発信されたパワーダイアラリストの名前

Queued Duration

発信者がキュー内で待機していた時間

Related Object Ids

関連オブジェクトの Salesforce ID(選択されている場合)

Ringing Duration

通話が応答されるまでの呼び出し時間

Routing Duration

通話が応答されるまでのルーティング時間

Status

通話ステータス(常に [Complete])

Subject

エージェントが入力した件名。ステータスが入力されていない場合はデフォルトのステータスが記録される

Target Name

通話ターゲットの名前

Task Subtype

全てのログで [Call] に更新

Time of call

通話の開始日時

Total Number of Times Dialed

番号がダイヤルされた回数の合計

Type

全てのログで [Call] に更新

フィールドマッピングの設定

Salesforce 管理者は、Dialpad Call Log オブジェクトとタスクオブジェクトをマッピングすることで、タスクフィールドの通話情報を取得して分析に役立てることができます。

以下手順をご確認ください。

  1. Dialpad Lightning タブを開きます。

  2. [設定管理]  > [設定] を開きます。

  3. [Call Activity Field Mapping] を開き、有効な Dialpad Call Log フィールドを確認します。

  4. 必要なタスクフィールドを選択して、保存します。

上記の設定を保存した後に発生した発着信通話について、選択したタスクフィールドに通話情報が取得されます。

サンプルレポート

最新の Dialpad パッケージをインストール後、Salesforce の標準ダッシュボードより [Dialpad Dashboards] へアクセスできます。

レポートは [Dialpad Call Log] オブジェクトに対して構築されます。オブジェクトの利用開始後、レポートに反映される仕組みとなります。

フィールドのデータ型

主要なフィールドのデータ型を以下に示します。

アカウントフィールド

フィールド名

データ型

Account Timezone

テキスト(255文字)

IsCreatedFromDialpad

チェックボックス

Powerdialer Assigned List

長文テキストエリア(1000文字)

Powerdialer Dialed List

長文テキストエリア(1000文字)

Powerdialer Last Dialed via

ルックアップ (Dialpad LOAC)

Total Number of Times Dialed

数値 (18, 0)

連絡先フィールド

フィールド名

データ型

Contact Timezone

テキスト(255文字)

IsCreatedFromDialpad

チェックボックス

Powerdialer Assigned List

長文テキストエリア(1000文字)

Powerdialer Dialed List

長文テキストエリア(1000文字)

Powerdialer Last Dialed via

ルックアップ (Dialpad LOAC)

Total Number of Times Dialed

数値 (18, 0)

リードフィールド

フィールド名

データ型

Lead Timezone

テキスト(255文字)

IsCreatedFromDialpad

チェックボックス

Powerdialer Assigned List

長文テキストエリア(1000文字)

Powerdialer Dialed List

長文テキストエリア(1000文字)

Powerdialer Last Dialed via

ルックアップ (Dialpad LOAC)

Total Number of Times Dialed

数値 (18, 0)

商談フィールド

フィールド名

データ型

Opportunity Timezone

テキスト(255文字)

IsCreatedFromDialpad

チェックボックス

Powerdialer Assigned List

長文テキストエリア(1000文字)

Powerdialer Dialed List

長文テキストエリア(1000文字)

Powerdialer Last Dialed via

ルックアップ (Dialpad LOAC)

Total Number of Times Dialed

数値 (18, 0)

タスクおよびアクティビティフィールド

フィールド名

データ型

Call End Time

日時

Call Recording URL

テキスト(255文字)

Call Start Time

日時

CallId

テキスト (32文字)

Dialpad Agent

ルックアップ (Dialpad エージェント)

Dialpad Call Center

ルックアップ (Dialpad コンタクトセンター)

Dialpad List

ルックアップ (Dialpad リスト)

IsDialpadCallLog

チェックボックス

PhoneNumber

テキスト (50文字)

AI Call Purpose

長文テキスト(1000文字)

AI CSAT

数値 (1-100)

AI Outcome

長文テキスト(1000文字)

AI Playbook Adherence

パーセンテージ

Note

通話サマリーとアクションアイテム以外の AI フィールドを表示するには、フィールドマッピングで設定する必要があります。マッピングが完了すると、これらのフィールドがタスクに表示されるようになります。ただし、タスクの形式制限により、AI 通話サマリーとアクションアイテムはタスク内に表示されません。

通話タスクは Dialpad ではなく、Salesforce で作成されます。Dialpad はこれらの記録を保存しないため、過去の通話データを遡って入力することはできません。

通話ログフィールド

フィールド名

データ型

Lead Timezone

テキスト(255文字)

IsCreatedFromDialpad

チェックボックス

Powerdialer Assigned List

長文テキストエリア(1000文字)

Powerdialer Dialed List

長文テキストエリア(1000文字)

Powerdialer Last Dialed via

ルックアップ (Dialpad LOAC)

Total Number of Times Dialed

数値 (18, 0)

AI Action Item

リッチテキスト (132, 072)

AI Call Purpose

長文テキスト(1000文字)

AI CSAT(日本未対応)

数値 (1 - 100)

AI Outcome

長文テキスト(1000文字)

AI Playbook Adherence

パーセンテージ

AI Summary

リッチテキスト (132, 072)

Note

6つの Dialpad AI ログ項目は、2024年3月15日より全てのユーザーで利用可能になりました。

2024年3月15日以降に Dialpad for Salesforce を利用開始した場合は、ページレイアウトに [Dialpad AI] という新しいセクションが表示されます。

2024年3月15日以前から利用している場合は、新しいセクションを作成し、AI フィールドを手動で追加する必要があります。

Salesforce の Lightning アプリケーションビルダーから Dialpad AI を検索し、[Dialpad AI] セクションを選択して任意の場所へドラッグ&ドロップし、[保存] を選択します。

タイムゾーンの設定・利用

Dialpad でタイムゾーンを設定する際は、希望する特定のタイムゾーンを選択できます。

2026年8月2日以降、Dialpad では以下のタイムゾーンオプションを提供しています。

  • GMT-12:00 - Baker Island, Howland Island (AoE)

  • GMT-11:00 - American Samoa, Niue (SST)

  • GMT-10:00 - Hawaii, Tahiti, Cook Islands (HST)

  • GMT-09:30 - Marquesas Islands (MART)

  • GMT-09:00 - Alaska, Gambier Islands (AKST)

  • GMT-08:00 - Los Angeles, Vancouver, Tijuana (PST)

  • GMT-07:00 - Denver, Phoenix, Calgary (MST)

  • GMT-06:00 - Chicago, Mexico City, Costa Rica, Galapagos (CST)

  • GMT-05:00 - New York, Toronto, Lima, Bogota (EST)

  • GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)

  • GMT-03:30 - St. John’s (NST)

  • GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)

  • GMT-02:00 - Fernando de Noronha, South Georgia (FNT)

  • GMT-01:00 - Cape Verde, Azores (CVT)

  • GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)

  • GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)

  • GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)

  • GMT+03:00 - Moscow, Nairobi, Baghdad, Riyadh, Istanbul (MSK)

  • GMT+03:30 - Tehran (IRST)

  • GMT+04:00 - Dubai, Baku, Tbilisi, Mauritius (GST)

  • GMT+04:30 - Kabul (AFT)

  • GMT+05:00 - Karachi, Islamabad, Tashkent, Yekaterinburg (PKT)

  • GMT+05:30 - New Delhi, Mumbai, Colombo (IST)

  • GMT+05:45 - Kathmandu (NPT)

  • GMT+06:00 - Dhaka, Almaty, Thimphu (BST)

  • GMT+06:30 - Yangon, Cocos Islands (MMT)

  • GMT+07:00 - Bangkok, Jakarta, Hanoi, Ho Chi Minh City (ICT)

  • GMT+08:00 - Beijing, Singapore, Hong Kong, Perth, Taipei (CST)

  • GMT+08:45 - Eucla (ACWST)

  • GMT+09:00 - Tokyo, Seoul, Pyongyang (JST)

  • GMT+09:30 - Adelaide, Darwin (ACST)

  • GMT+10:00 - Sydney, Brisbane, Guam, Port Moresby (AEST)

  • GMT+10:30 - Lord Howe Island (LHST)

  • GMT+11:00 - Solomon Islands, Vanuatu, Magadan (SBT)

  • GMT+12:00 - Auckland, Fiji, Kamchatka (NZST)

  • GMT+12:45 - Chatham Islands (CHAST)

  • GMT+13:00 - Phoenix Islands, Tokelau, Tonga, Samoa (PHOT)

  • GMT+14:00 - Kiritimati/Line Islands (LINT)

重要

2026年8月2日以前よりタイムゾーン機能をご利用いただいている場合は、旧形式から新形式への移行処理を行うため、以下のスクリプトを実行する必要があります。

Salesforce - タイムゾーン更新スクリプト

本スクリプトは、テキストフィールドとして保存されている従来のタイムゾーン値を、新しい選択リストフィールドへマッピングします。

実行にあたっては、Salesforce Developer Console または Workbench を使用します。なお、Salesforce Developer Console における文字数制限に対応するため、スクリプトは2つのパートに分かれています。各パートでそれぞれ一部のタイムゾーン(サブセット)を順次処理します。

スクリプト内には、以下の2つの変数が定義されています。

  • sObjectName:旧タイムゾーン値を新しい値へマッピングする対象のオブジェクト名に合わせて、変数の値を更新します。

  • recordLimit:1回のトランザクションで処理する最大レコード数を制限します。

処理対象レコードの抽出条件Dialpad__Timezone__c フィールドが空(NULL)ではなく、かつ Dialpad__Dialpad_Timezone__c フィールドが空(NULL)であること。

// ============================================================
// PART 1 of 2
// Run Part 1 first, then run Part 2.
// ============================================================
String sObjectName = 'Account';                        // e.g. 'Account', 'Contact', 'Lead'
Integer recordLimit = 200;                             // Max limit 10000, Update as per org configuration 
String sourceField = 'Dialpad__Timezone__c';           // Old Text Field API
String targetField = 'Dialpad__Dialpad_Timezone__c';   // New Picklist Field API 
Map<String, String> tzMap = new Map<String, String>{
'Pacific/Midway' => 'GMT-11:00 - American Samoa, Niue (SST)',
'Pacific/Niue' => 'GMT-11:00 - American Samoa, Niue (SST)',
'Pacific/Pago_Pago' => 'GMT-11:00 - American Samoa, Niue (SST)',
'America/Adak' => 'GMT-10:00 - Hawaii, Tahiti, Cook Islands (HST)',
'Pacific/Honolulu' => 'GMT-10:00 - Hawaii, Tahiti, Cook Islands (HST)',
'Pacific/Johnston' => 'GMT-10:00 - Hawaii, Tahiti, Cook Islands (HST)',
'Pacific/Rarotonga' => 'GMT-10:00 - Hawaii, Tahiti, Cook Islands (HST)',
'Pacific/Tahiti' => 'GMT-10:00 - Hawaii, Tahiti, Cook Islands (HST)',
'Pacific/Marquesas' => 'GMT-09:30 - Marquesas Islands (MART)',
'America/Anchorage' => 'GMT-09:00 - Alaska, Gambier Islands (AKST)',
'America/Juneau' => 'GMT-09:00 - Alaska, Gambier Islands (AKST)',
'America/Metlakatla' => 'GMT-09:00 - Alaska, Gambier Islands (AKST)',
'America/Nome' => 'GMT-09:00 - Alaska, Gambier Islands (AKST)',
'America/Sitka' => 'GMT-09:00 - Alaska, Gambier Islands (AKST)',
'America/Yakutat' => 'GMT-09:00 - Alaska, Gambier Islands (AKST)',
'Pacific/Gambier' => 'GMT-09:00 - Alaska, Gambier Islands (AKST)',
'America/Los_Angeles' => 'GMT-08:00 - Los Angeles, Vancouver, Tijuana (PST)',
'America/Santa_Isabel' => 'GMT-08:00 - Los Angeles, Vancouver, Tijuana (PST)',
'America/Tijuana' => 'GMT-08:00 - Los Angeles, Vancouver, Tijuana (PST)',
'America/Vancouver' => 'GMT-08:00 - Los Angeles, Vancouver, Tijuana (PST)',
'Pacific/Pitcairn' => 'GMT-08:00 - Los Angeles, Vancouver, Tijuana (PST)',
'America/Boise' => 'GMT-07:00 - Denver, Phoenix, Calgary (MST)',
'America/Cambridge_Bay' => 'GMT-07:00 - Denver, Phoenix, Calgary (MST)',
'America/Creston' => 'GMT-07:00 - Denver, Phoenix, Calgary (MST)',
'America/Dawson' => 'GMT-07:00 - Denver, Phoenix, Calgary (MST)',
'America/Dawson_Creek' => 'GMT-07:00 - Denver, Phoenix, Calgary (MST)',
'America/Denver' => 'GMT-07:00 - Denver, Phoenix, Calgary (MST)',
'America/Edmonton' => 'GMT-07:00 - Denver, Phoenix, Calgary (MST)',
'America/Fort_Nelson' => 'GMT-07:00 - Denver, Phoenix, Calgary (MST)',
'America/Hermosillo' => 'GMT-07:00 - Denver, Phoenix, Calgary (MST)',
'America/Inuvik' => 'GMT-07:00 - Denver, Phoenix, Calgary (MST)',
'America/Mazatlan' => 'GMT-07:00 - Denver, Phoenix, Calgary (MST)',
'America/Phoenix' => 'GMT-07:00 - Denver, Phoenix, Calgary (MST)',
'America/Whitehorse' => 'GMT-07:00 - Denver, Phoenix, Calgary (MST)',
'America/Yellowknife' => 'GMT-07:00 - Denver, Phoenix, Calgary (MST)',
'America/Bahia_Banderas' => 'GMT-06:00 - Chicago, Mexico City, Costa Rica, Galapagos (CST)',
'America/Belize' => 'GMT-06:00 - Chicago, Mexico City, Costa Rica, Galapagos (CST)',
'America/Chicago' => 'GMT-06:00 - Chicago, Mexico City, Costa Rica, Galapagos (CST)',
'America/Chihuahua' => 'GMT-06:00 - Chicago, Mexico City, Costa Rica, Galapagos (CST)',
'America/Costa_Rica' => 'GMT-06:00 - Chicago, Mexico City, Costa Rica, Galapagos (CST)',
'America/El_Salvador' => 'GMT-06:00 - Chicago, Mexico City, Costa Rica, Galapagos (CST)',
'America/Guatemala' => 'GMT-06:00 - Chicago, Mexico City, Costa Rica, Galapagos (CST)',
'America/Indiana/Knox' => 'GMT-06:00 - Chicago, Mexico City, Costa Rica, Galapagos (CST)',
'America/Indiana/Tell_City' => 'GMT-06:00 - Chicago, Mexico City, Costa Rica, Galapagos (CST)',
'America/Managua' => 'GMT-06:00 - Chicago, Mexico City, Costa Rica, Galapagos (CST)',
'America/Matamoros' => 'GMT-06:00 - Chicago, Mexico City, Costa Rica, Galapagos (CST)',
'America/Menominee' => 'GMT-06:00 - Chicago, Mexico City, Costa Rica, Galapagos (CST)',
'America/Merida' => 'GMT-06:00 - Chicago, Mexico City, Costa Rica, Galapagos (CST)',
'America/Mexico_City' => 'GMT-06:00 - Chicago, Mexico City, Costa Rica, Galapagos (CST)',
'America/Monterrey' => 'GMT-06:00 - Chicago, Mexico City, Costa Rica, Galapagos (CST)',
'America/North_Dakota/Beulah' => 'GMT-06:00 - Chicago, Mexico City, Costa Rica, Galapagos (CST)',
'America/North_Dakota/Center' => 'GMT-06:00 - Chicago, Mexico City, Costa Rica, Galapagos (CST)',
'America/North_Dakota/New_Salem' => 'GMT-06:00 - Chicago, Mexico City, Costa Rica, Galapagos (CST)',
'America/Ojinaga' => 'GMT-06:00 - Chicago, Mexico City, Costa Rica, Galapagos (CST)',
'America/Rainy_River' => 'GMT-06:00 - Chicago, Mexico City, Costa Rica, Galapagos (CST)',
'America/Rankin_Inlet' => 'GMT-06:00 - Chicago, Mexico City, Costa Rica, Galapagos (CST)',
'America/Regina' => 'GMT-06:00 - Chicago, Mexico City, Costa Rica, Galapagos (CST)',
'America/Resolute' => 'GMT-06:00 - Chicago, Mexico City, Costa Rica, Galapagos (CST)',
'America/Swift_Current' => 'GMT-06:00 - Chicago, Mexico City, Costa Rica, Galapagos (CST)',
'America/Tegucigalpa' => 'GMT-06:00 - Chicago, Mexico City, Costa Rica, Galapagos (CST)',
'America/Winnipeg' => 'GMT-06:00 - Chicago, Mexico City, Costa Rica, Galapagos (CST)',
'Pacific/Galapagos' => 'GMT-06:00 - Chicago, Mexico City, Costa Rica, Galapagos (CST)',
'America/Bogota' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Cancun' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Cayman' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Coral_Harbour' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Detroit' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Eirunepe' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Grand_Turk' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Guayaquil' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Havana' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Indiana/Indianapolis' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Indiana/Marengo' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Indiana/Petersburg' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Indiana/Vevay' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Indiana/Vincennes' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Indiana/Winamac' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Iqaluit' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Jamaica' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Kentucky/Monticello' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Lima' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Louisville' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Montreal' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Nassau' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/New_York' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Nipigon' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Panama' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Pangnirtung' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Port-au-Prince' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Rio_Branco' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Thunder_Bay' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Toronto' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'Pacific/Easter' => 'GMT-05:00 - New York, Toronto, Lima, Bogota (EST)',
'America/Anguilla' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Antigua' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Aruba' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Barbados' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Blanc-Sablon' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Boa_Vista' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Campo_Grande' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Caracas' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Cuiaba' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Curacao' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Dominica' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Glace_Bay' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Goose_Bay' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Grenada' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Guadeloupe' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Guyana' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Halifax' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Kralendijk' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/La_Paz' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Lower_Princes' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Manaus' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Marigot' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Martinique' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Moncton' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Montserrat' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Port_of_Spain' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Porto_Velho' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Puerto_Rico' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Santo_Domingo' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/St_Barthelemy' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/St_Kitts' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/St_Lucia' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/St_Thomas' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/St_Vincent' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Thule' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/Tortola' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'Atlantic/Bermuda' => 'GMT-04:00 - Halifax, Santiago, Caracas, La Paz (AST)',
'America/St_Johns' => 'GMT-03:30 - St. John\'s (NST)',
'America/Araguaina' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'America/Argentina/Buenos_Aires' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'America/Argentina/La_Rioja' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'America/Argentina/Rio_Gallegos' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'America/Argentina/Salta' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'America/Argentina/San_Juan' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'America/Argentina/San_Luis' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'America/Argentina/Tucuman' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'America/Argentina/Ushuaia' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'America/Asuncion' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'America/Bahia' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'America/Belem' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'America/Catamarca' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'America/Cayenne' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'America/Cordoba' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'America/Fortaleza' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'America/Jujuy' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'America/Maceio' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'America/Mendoza' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'America/Miquelon' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'America/Montevideo' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'America/Paramaribo' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'America/Punta_Arenas' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'America/Recife' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'America/Santarem' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'America/Santiago' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'America/Sao_Paulo' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'Antarctica/Palmer' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'Antarctica/Rothera' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'Atlantic/Stanley' => 'GMT-03:00 - São Paulo, Buenos Aires, Montevideo (BRT)',
'America/Godthab' => 'GMT-02:00 - Fernando de Noronha, South Georgia (FNT)',
'America/Noronha' => 'GMT-02:00 - Fernando de Noronha, South Georgia (FNT)',
'America/Scoresbysund' => 'GMT-02:00 - Fernando de Noronha, South Georgia (FNT)',
'Atlantic/South_Georgia' => 'GMT-02:00 - Fernando de Noronha, South Georgia (FNT)',
'Atlantic/Azores' => 'GMT-01:00 - Cape Verde, Azores (CVT)',
'Atlantic/Cape_Verde' => 'GMT-01:00 - Cape Verde, Azores (CVT)',
'Africa/Abidjan' => 'GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)',
'Africa/Accra' => 'GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)',
'Africa/Bamako' => 'GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)',
'Africa/Banjul' => 'GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)',
'Africa/Bissau' => 'GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)',
'Africa/Casablanca' => 'GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)',
'Africa/Conakry' => 'GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)',
'Africa/Dakar' => 'GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)',
'Africa/El_Aaiun' => 'GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)',
'Africa/Freetown' => 'GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)',
'Africa/Lome' => 'GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)',
'Africa/Monrovia' => 'GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)',
'Africa/Nouakchott' => 'GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)',
'Africa/Ouagadougou' => 'GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)',
'Africa/Sao_Tome' => 'GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)',
'America/Danmarkshavn' => 'GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)',
'Antarctica/Troll' => 'GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)',
'Atlantic/Canary' => 'GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)',
'Atlantic/Faeroe' => 'GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)',
'Atlantic/Madeira' => 'GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)',
'Atlantic/Reykjavik' => 'GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)',
'Atlantic/St_Helena' => 'GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)',
'Europe/Dublin' => 'GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)',
'Europe/Guernsey' => 'GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)',
'Europe/Isle_of_Man' => 'GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)',
'Europe/Jersey' => 'GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)',
'Europe/Lisbon' => 'GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)',
'Europe/London' => 'GMT+00:00 - London, Dublin, Lisbon, Reykjavik, Accra (GMT)',
'Africa/Algiers' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Africa/Bangui' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Africa/Brazzaville' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Africa/Ceuta' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Africa/Douala' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Africa/Kinshasa' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Africa/Lagos' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Africa/Libreville' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Africa/Luanda' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Africa/Malabo' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Africa/Ndjamena' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Africa/Niamey' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Africa/Porto-Novo' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Africa/Tunis' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Arctic/Longyearbyen' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Amsterdam' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Andorra' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Belgrade' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Berlin' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Bratislava' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Brussels' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Budapest' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Busingen' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Copenhagen' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Gibraltar' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Ljubljana' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Luxembourg' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Madrid' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Malta' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Monaco' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Oslo' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Paris' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Podgorica' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Prague' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Rome' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/San_Marino' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Sarajevo' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Skopje' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Stockholm' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Tirane' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Vaduz' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Vatican' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Vienna' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Warsaw' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Zagreb' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)',
'Europe/Zurich' => 'GMT+01:00 - Paris, Berlin, Rome, Lagos, Kinshasa (CET)'
};
String query = 'SELECT Id, ' + sourceField + ', ' + targetField
    + ' FROM ' + sObjectName
    + ' WHERE ' + sourceField + ' != NULL'
    + ' AND ' + targetField + ' = NULL'
    + ' LIMIT ' + recordLimit;
List<SObject> records = Database.query(query);
List<SObject> toUpdate = new List<SObject>();
Integer matchCount = 0;
for (SObject rec : records) {
    String sfTz = (String) rec.get(sourceField);
    if (String.isNotBlank(sfTz) && tzMap.containsKey(sfTz)) {
        rec.put(targetField, tzMap.get(sfTz));
        toUpdate.add(rec);
        matchCount++;
    } 
}
if (!toUpdate.isEmpty()) {
    Database.SaveResult[] results = Database.update(toUpdate, false);
    Integer successCount = 0, failCount = 0;
    for (Database.SaveResult sr : results) {
        if (sr.isSuccess()) { successCount++; }
        else {
            failCount++;
            for (Database.Error e : sr.getErrors())
                System.debug('Update failed: ' + sr.getId() + ' | ' + e.getMessage());
        }
    }
    System.debug('=== PART 1 COMPLETE === Updated: ' + successCount + ' | Failed: ' + failCount);
} else {
    System.debug('=== PART 1: No matching records to update ===');
}
// ============================================================
// PART 2 
// Execute this salesforce developer console or workbench 
// ============================================================
String  sObjectName  = 'Account';                     // e.g. 'Account', 'Contact', 'Lead'
Integer recordLimit  = 5000;                          // Max limit 10000, Update as per org configuration 
String sourceField = 'Dialpad__Timezone__c';          // Old Text Field API
String targetField = 'Dialpad__Dialpad_Timezone__c'; // New Picklist Field API 
// ============================================================
// Creating old value to new value Map - 2nd set 
// ============================================================
Map<String, String> tzMap = new Map<String, String>{
'Africa/Blantyre' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Africa/Bujumbura' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Africa/Cairo' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Africa/Gaborone' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Africa/Harare' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Africa/Johannesburg' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Africa/Juba' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Africa/Khartoum' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Africa/Kigali' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Africa/Lubumbashi' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Africa/Lusaka' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Africa/Maputo' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Africa/Maseru' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Africa/Mbabane' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Africa/Tripoli' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Africa/Windhoek' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Asia/Beirut' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Asia/Famagusta' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Asia/Gaza' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Asia/Hebron' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Asia/Jerusalem' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Asia/Nicosia' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Europe/Athens' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Europe/Bucharest' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Europe/Chisinau' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Europe/Helsinki' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Europe/Kaliningrad' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Europe/Kyiv' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Europe/Mariehamn' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Europe/Riga' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Europe/Sofia' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Europe/Tallinn' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Europe/Uzhgorod' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Europe/Vilnius' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Europe/Zaporozhye' => 'GMT+02:00 - Cairo, Johannesburg, Helsinki, Kyiv, Jerusalem (EET)',
'Africa/Addis_Ababa' => 'GMT+03:00 - Moscow, Nairobi, Baghdad, Riyadh, Istanbul (MSK)',
'Africa/Asmera' => 'GMT+03:00 - Moscow, Nairobi, Baghdad, Riyadh, Istanbul (MSK)',
'Africa/Dar_es_Salaam' => 'GMT+03:00 - Moscow, Nairobi, Baghdad, Riyadh, Istanbul (MSK)',
'Africa/Djibouti' => 'GMT+03:00 - Moscow, Nairobi, Baghdad, Riyadh, Istanbul (MSK)',
'Africa/Kampala' => 'GMT+03:00 - Moscow, Nairobi, Baghdad, Riyadh, Istanbul (MSK)',
'Africa/Mogadishu' => 'GMT+03:00 - Moscow, Nairobi, Baghdad, Riyadh, Istanbul (MSK)',
'Africa/Nairobi' => 'GMT+03:00 - Moscow, Nairobi, Baghdad, Riyadh, Istanbul (MSK)',
'Antarctica/Syowa' => 'GMT+03:00 - Moscow, Nairobi, Baghdad, Riyadh, Istanbul (MSK)',
'Asia/Aden' => 'GMT+03:00 - Moscow, Nairobi, Baghdad, Riyadh, Istanbul (MSK)',
'Asia/Amman' => 'GMT+03:00 - Moscow, Nairobi, Baghdad, Riyadh, Istanbul (MSK)',
'Asia/Baghdad' => 'GMT+03:00 - Moscow, Nairobi, Baghdad, Riyadh, Istanbul (MSK)',
'Asia/Bahrain' => 'GMT+03:00 - Moscow, Nairobi, Baghdad, Riyadh, Istanbul (MSK)',
'Asia/Damascus' => 'GMT+03:00 - Moscow, Nairobi, Baghdad, Riyadh, Istanbul (MSK)',
'Asia/Kuwait' => 'GMT+03:00 - Moscow, Nairobi, Baghdad, Riyadh, Istanbul (MSK)',
'Asia/Qatar' => 'GMT+03:00 - Moscow, Nairobi, Baghdad, Riyadh, Istanbul (MSK)',
'Asia/Riyadh' => 'GMT+03:00 - Moscow, Nairobi, Baghdad, Riyadh, Istanbul (MSK)',
'Europe/Istanbul' => 'GMT+03:00 - Moscow, Nairobi, Baghdad, Riyadh, Istanbul (MSK)',
'Europe/Kirov' => 'GMT+03:00 - Moscow, Nairobi, Baghdad, Riyadh, Istanbul (MSK)',
'Europe/Minsk' => 'GMT+03:00 - Moscow, Nairobi, Baghdad, Riyadh, Istanbul (MSK)',
'Europe/Moscow' => 'GMT+03:00 - Moscow, Nairobi, Baghdad, Riyadh, Istanbul (MSK)',
'Europe/Simferopol' => 'GMT+03:00 - Moscow, Nairobi, Baghdad, Riyadh, Istanbul (MSK)',
'Europe/Volgograd' => 'GMT+03:00 - Moscow, Nairobi, Baghdad, Riyadh, Istanbul (MSK)',
'Indian/Antananarivo' => 'GMT+03:00 - Moscow, Nairobi, Baghdad, Riyadh, Istanbul (MSK)',
'Indian/Comoro' => 'GMT+03:00 - Moscow, Nairobi, Baghdad, Riyadh, Istanbul (MSK)',
'Indian/Mayotte' => 'GMT+03:00 - Moscow, Nairobi, Baghdad, Riyadh, Istanbul (MSK)',
'Asia/Tehran' => 'GMT+03:30 - Tehran (IRST)',
'Asia/Baku' => 'GMT+04:00 - Dubai, Baku, Tbilisi, Mauritius (GST)',
'Asia/Dubai' => 'GMT+04:00 - Dubai, Baku, Tbilisi, Mauritius (GST)',
'Asia/Muscat' => 'GMT+04:00 - Dubai, Baku, Tbilisi, Mauritius (GST)',
'Asia/Tbilisi' => 'GMT+04:00 - Dubai, Baku, Tbilisi, Mauritius (GST)',
'Asia/Yerevan' => 'GMT+04:00 - Dubai, Baku, Tbilisi, Mauritius (GST)',
'Europe/Astrakhan' => 'GMT+04:00 - Dubai, Baku, Tbilisi, Mauritius (GST)',
'Europe/Samara' => 'GMT+04:00 - Dubai, Baku, Tbilisi, Mauritius (GST)',
'Europe/Saratov' => 'GMT+04:00 - Dubai, Baku, Tbilisi, Mauritius (GST)',
'Europe/Ulyanovsk' => 'GMT+04:00 - Dubai, Baku, Tbilisi, Mauritius (GST)',
'Indian/Mahe' => 'GMT+04:00 - Dubai, Baku, Tbilisi, Mauritius (GST)',
'Indian/Mauritius' => 'GMT+04:00 - Dubai, Baku, Tbilisi, Mauritius (GST)',
'Indian/Reunion' => 'GMT+04:00 - Dubai, Baku, Tbilisi, Mauritius (GST)',
'Asia/Kabul' => 'GMT+04:30 - Kabul (AFT)',
'Antarctica/Mawson' => 'GMT+05:00 - Karachi, Islamabad, Tashkent, Yekaterinburg (PKT)',
'Antarctica/Vostok' => 'GMT+05:00 - Karachi, Islamabad, Tashkent, Yekaterinburg (PKT)',
'Asia/Almaty' => 'GMT+05:00 - Karachi, Islamabad, Tashkent, Yekaterinburg (PKT)',
'Asia/Aqtau' => 'GMT+05:00 - Karachi, Islamabad, Tashkent, Yekaterinburg (PKT)',
'Asia/Aqtobe' => 'GMT+05:00 - Karachi, Islamabad, Tashkent, Yekaterinburg (PKT)',
'Asia/Ashgabat' => 'GMT+05:00 - Karachi, Islamabad, Tashkent, Yekaterinburg (PKT)',
'Asia/Atyrau' => 'GMT+05:00 - Karachi, Islamabad, Tashkent, Yekaterinburg (PKT)',
'Asia/Dushanbe' => 'GMT+05:00 - Karachi, Islamabad, Tashkent, Yekaterinburg (PKT)',
'Asia/Karachi' => 'GMT+05:00 - Karachi, Islamabad, Tashkent, Yekaterinburg (PKT)',
'Asia/Oral' => 'GMT+05:00 - Karachi, Islamabad, Tashkent, Yekaterinburg (PKT)',
'Asia/Qostanay' => 'GMT+05:00 - Karachi, Islamabad, Tashkent, Yekaterinburg (PKT)',
'Asia/Qyzylorda' => 'GMT+05:00 - Karachi, Islamabad, Tashkent, Yekaterinburg (PKT)',
'Asia/Samarkand' => 'GMT+05:00 - Karachi, Islamabad, Tashkent, Yekaterinburg (PKT)',
'Asia/Tashkent' => 'GMT+05:00 - Karachi, Islamabad, Tashkent, Yekaterinburg (PKT)',
'Asia/Yekaterinburg' => 'GMT+05:00 - Karachi, Islamabad, Tashkent, Yekaterinburg (PKT)',
'Indian/Kerguelen' => 'GMT+05:00 - Karachi, Islamabad, Tashkent, Yekaterinburg (PKT)',
'Indian/Maldives' => 'GMT+05:00 - Karachi, Islamabad, Tashkent, Yekaterinburg (PKT)',
'Asia/Colombo' => 'GMT+05:30 - New Delhi, Mumbai, Colombo (IST)',
'Asia/Kolkata' => 'GMT+05:30 - New Delhi, Mumbai, Colombo (IST)',
'Asia/Kathmandu' => 'GMT+05:45 - Kathmandu (NPT)',
'Asia/Bishkek' => 'GMT+06:00 - Dhaka, Almaty, Thimphu (BST)',
'Asia/Dhaka' => 'GMT+06:00 - Dhaka, Almaty, Thimphu (BST)',
'Asia/Omsk' => 'GMT+06:00 - Dhaka, Almaty, Thimphu (BST)',
'Asia/Thimphu' => 'GMT+06:00 - Dhaka, Almaty, Thimphu (BST)',
'Asia/Urumqi' => 'GMT+06:00 - Dhaka, Almaty, Thimphu (BST)',
'Indian/Chagos' => 'GMT+06:00 - Dhaka, Almaty, Thimphu (BST)',
'Asia/Rangoon' => 'GMT+06:30 - Yangon, Cocos Islands (MMT)',
'Indian/Cocos' => 'GMT+06:30 - Yangon, Cocos Islands (MMT)',
'Antarctica/Davis' => 'GMT+07:00 - Bangkok, Jakarta, Hanoi, Ho Chi Minh City (ICT)',
'Asia/Bangkok' => 'GMT+07:00 - Bangkok, Jakarta, Hanoi, Ho Chi Minh City (ICT)',
'Asia/Barnaul' => 'GMT+07:00 - Bangkok, Jakarta, Hanoi, Ho Chi Minh City (ICT)',
'Asia/Ho_Chi_Minh' => 'GMT+07:00 - Bangkok, Jakarta, Hanoi, Ho Chi Minh City (ICT)',
'Asia/Hovd' => 'GMT+07:00 - Bangkok, Jakarta, Hanoi, Ho Chi Minh City (ICT)',
'Asia/Jakarta' => 'GMT+07:00 - Bangkok, Jakarta, Hanoi, Ho Chi Minh City (ICT)',
'Asia/Krasnoyarsk' => 'GMT+07:00 - Bangkok, Jakarta, Hanoi, Ho Chi Minh City (ICT)',
'Asia/Novokuznetsk' => 'GMT+07:00 - Bangkok, Jakarta, Hanoi, Ho Chi Minh City (ICT)',
'Asia/Novosibirsk' => 'GMT+07:00 - Bangkok, Jakarta, Hanoi, Ho Chi Minh City (ICT)',
'Asia/Phnom_Penh' => 'GMT+07:00 - Bangkok, Jakarta, Hanoi, Ho Chi Minh City (ICT)',
'Asia/Pontianak' => 'GMT+07:00 - Bangkok, Jakarta, Hanoi, Ho Chi Minh City (ICT)',
'Asia/Tomsk' => 'GMT+07:00 - Bangkok, Jakarta, Hanoi, Ho Chi Minh City (ICT)',
'Asia/Vientiane' => 'GMT+07:00 - Bangkok, Jakarta, Hanoi, Ho Chi Minh City (ICT)',
'Indian/Christmas' => 'GMT+07:00 - Bangkok, Jakarta, Hanoi, Ho Chi Minh City (ICT)',
'Antarctica/Casey' => 'GMT+08:00 - Beijing, Singapore, Hong Kong, Perth, Taipei (CST)',
'Asia/Brunei' => 'GMT+08:00 - Beijing, Singapore, Hong Kong, Perth, Taipei (CST)',
'Asia/Choibalsan' => 'GMT+08:00 - Beijing, Singapore, Hong Kong, Perth, Taipei (CST)',
'Asia/Hong_Kong' => 'GMT+08:00 - Beijing, Singapore, Hong Kong, Perth, Taipei (CST)',
'Asia/Irkutsk' => 'GMT+08:00 - Beijing, Singapore, Hong Kong, Perth, Taipei (CST)',
'Asia/Kuala_Lumpur' => 'GMT+08:00 - Beijing, Singapore, Hong Kong, Perth, Taipei (CST)',
'Asia/Kuching' => 'GMT+08:00 - Beijing, Singapore, Hong Kong, Perth, Taipei (CST)',
'Asia/Macau' => 'GMT+08:00 - Beijing, Singapore, Hong Kong, Perth, Taipei (CST)',
'Asia/Makassar' => 'GMT+08:00 - Beijing, Singapore, Hong Kong, Perth, Taipei (CST)',
'Asia/Manila' => 'GMT+08:00 - Beijing, Singapore, Hong Kong, Perth, Taipei (CST)',
'Asia/Shanghai' => 'GMT+08:00 - Beijing, Singapore, Hong Kong, Perth, Taipei (CST)',
'Asia/Singapore' => 'GMT+08:00 - Beijing, Singapore, Hong Kong, Perth, Taipei (CST)',
'Asia/Taipei' => 'GMT+08:00 - Beijing, Singapore, Hong Kong, Perth, Taipei (CST)',
'Asia/Ulaanbaatar' => 'GMT+08:00 - Beijing, Singapore, Hong Kong, Perth, Taipei (CST)',
'Australia/Perth' => 'GMT+08:00 - Beijing, Singapore, Hong Kong, Perth, Taipei (CST)',
'Australia/Eucla' => 'GMT+08:45 - Eucla (ACWST)',
'Asia/Chita' => 'GMT+09:00 - Tokyo, Seoul, Pyongyang (JST)',
'Asia/Dili' => 'GMT+09:00 - Tokyo, Seoul, Pyongyang (JST)',
'Asia/Jayapura' => 'GMT+09:00 - Tokyo, Seoul, Pyongyang (JST)',
'Asia/Khandyga' => 'GMT+09:00 - Tokyo, Seoul, Pyongyang (JST)',
'Asia/Pyongyang' => 'GMT+09:00 - Tokyo, Seoul, Pyongyang (JST)',
'Asia/Seoul' => 'GMT+09:00 - Tokyo, Seoul, Pyongyang (JST)',
'Asia/Tokyo' => 'GMT+09:00 - Tokyo, Seoul, Pyongyang (JST)',
'Asia/Yakutsk' => 'GMT+09:00 - Tokyo, Seoul, Pyongyang (JST)',
'Pacific/Palau' => 'GMT+09:00 - Tokyo, Seoul, Pyongyang (JST)',
'Australia/Darwin' => 'GMT+09:30 - Adelaide, Darwin (ACST)',
'Antarctica/DumontDUrville' => 'GMT+10:00 - Sydney, Brisbane, Guam, Port Moresby (AEST)',
'Asia/Ust-Nera' => 'GMT+10:00 - Sydney, Brisbane, Guam, Port Moresby (AEST)',
'Asia/Vladivostok' => 'GMT+10:00 - Sydney, Brisbane, Guam, Port Moresby (AEST)',
'Australia/Brisbane' => 'GMT+10:00 - Sydney, Brisbane, Guam, Port Moresby (AEST)',
'Australia/Lindeman' => 'GMT+10:00 - Sydney, Brisbane, Guam, Port Moresby (AEST)',
'Pacific/Guam' => 'GMT+10:00 - Sydney, Brisbane, Guam, Port Moresby (AEST)',
'Pacific/Port_Moresby' => 'GMT+10:00 - Sydney, Brisbane, Guam, Port Moresby (AEST)',
'Pacific/Saipan' => 'GMT+10:00 - Sydney, Brisbane, Guam, Port Moresby (AEST)',
'Pacific/Truk' => 'GMT+10:00 - Sydney, Brisbane, Guam, Port Moresby (AEST)',
'Australia/Adelaide' => 'GMT+10:30 - Lord Howe Island (LHST)',
'Australia/Broken_Hill' => 'GMT+10:30 - Lord Howe Island (LHST)',
'Antarctica/Macquarie' => 'GMT+11:00 - Solomon Islands, Vanuatu, Magadan (SBT)',
'Asia/Magadan' => 'GMT+11:00 - Solomon Islands, Vanuatu, Magadan (SBT)',
'Asia/Sakhalin' => 'GMT+11:00 - Solomon Islands, Vanuatu, Magadan (SBT)',
'Asia/Srednekolymsk' => 'GMT+11:00 - Solomon Islands, Vanuatu, Magadan (SBT)',
'Australia/Currie' => 'GMT+11:00 - Solomon Islands, Vanuatu, Magadan (SBT)',
'Australia/Hobart' => 'GMT+11:00 - Solomon Islands, Vanuatu, Magadan (SBT)',
'Australia/Lord_Howe' => 'GMT+11:00 - Solomon Islands, Vanuatu, Magadan (SBT)',
'Australia/Melbourne' => 'GMT+11:00 - Solomon Islands, Vanuatu, Magadan (SBT)',
'Australia/Sydney' => 'GMT+11:00 - Solomon Islands, Vanuatu, Magadan (SBT)',
'Pacific/Bougainville' => 'GMT+11:00 - Solomon Islands, Vanuatu, Magadan (SBT)',
'Pacific/Efate' => 'GMT+11:00 - Solomon Islands, Vanuatu, Magadan (SBT)',
'Pacific/Guadalcanal' => 'GMT+11:00 - Solomon Islands, Vanuatu, Magadan (SBT)',
'Pacific/Kosrae' => 'GMT+11:00 - Solomon Islands, Vanuatu, Magadan (SBT)',
'Pacific/Noumea' => 'GMT+11:00 - Solomon Islands, Vanuatu, Magadan (SBT)',
'Pacific/Ponape' => 'GMT+11:00 - Solomon Islands, Vanuatu, Magadan (SBT)',
'Asia/Anadyr' => 'GMT+12:00 - Auckland, Fiji, Kamchatka (NZST)',
'Asia/Kamchatka' => 'GMT+12:00 - Auckland, Fiji, Kamchatka (NZST)',
'Pacific/Fiji' => 'GMT+12:00 - Auckland, Fiji, Kamchatka (NZST)',
'Pacific/Funafuti' => 'GMT+12:00 - Auckland, Fiji, Kamchatka (NZST)',
'Pacific/Kwajalein' => 'GMT+12:00 - Auckland, Fiji, Kamchatka (NZST)',
'Pacific/Majuro' => 'GMT+12:00 - Auckland, Fiji, Kamchatka (NZST)',
'Pacific/Nauru' => 'GMT+12:00 - Auckland, Fiji, Kamchatka (NZST)',
'Pacific/Norfolk' => 'GMT+12:00 - Auckland, Fiji, Kamchatka (NZST)',
'Pacific/Tarawa' => 'GMT+12:00 - Auckland, Fiji, Kamchatka (NZST)',
'Pacific/Wake' => 'GMT+12:00 - Auckland, Fiji, Kamchatka (NZST)',
'Pacific/Wallis' => 'GMT+12:00 - Auckland, Fiji, Kamchatka (NZST)',
'Pacific/Chatham' => 'GMT+12:45 - Chatham Islands (CHAST)',
'Antarctica/McMurdo' => 'GMT+13:00 - Phoenix Islands, Tokelau, Tonga, Samoa (PHOT)',
'Pacific/Apia' => 'GMT+13:00 - Phoenix Islands, Tokelau, Tonga, Samoa (PHOT)',
'Pacific/Auckland' => 'GMT+13:00 - Phoenix Islands, Tokelau, Tonga, Samoa (PHOT)',
'Pacific/Enderbury' => 'GMT+13:00 - Phoenix Islands, Tokelau, Tonga, Samoa (PHOT)',
'Pacific/Fakaofo' => 'GMT+13:00 - Phoenix Islands, Tokelau, Tonga, Samoa (PHOT)',
'Pacific/Tongatapu' => 'GMT+13:00 - Phoenix Islands, Tokelau, Tonga, Samoa (PHOT)',
'Pacific/Kiritimati' => 'GMT+14:00 - Kiritimati/Line Islands (LINT)'
};
// ============================================================
// QUERY & UPDATE
// ============================================================
String query = 'SELECT Id, ' + sourceField + ', ' + targetField
    + ' FROM ' + sObjectName
    + ' WHERE ' + sourceField + ' != NULL'
    + ' AND ' + targetField + ' = NULL'
    + ' LIMIT ' + recordLimit;
List<SObject> records = Database.query(query);
List<SObject> toUpdate = new List<SObject>();
Integer matchCount = 0;
for (SObject rec : records) {
    String sfTz = (String) rec.get(sourceField);
    if (String.isNotBlank(sfTz) && tzMap.containsKey(sfTz)) {
        rec.put(targetField, tzMap.get(sfTz));
        toUpdate.add(rec);
        matchCount++;
    } 
}
if (!toUpdate.isEmpty()) {
    Database.SaveResult[] results = Database.update(toUpdate, false);
    Integer successCount = 0, failCount = 0;
    for (Database.SaveResult sr : results) {
        if (sr.isSuccess()) { successCount++; }
        else {
            failCount++;
            for (Database.Error e : sr.getErrors())
                System.debug('Update failed: ' + sr.getId() + ' | ' + e.getMessage());
        }
    }
    System.debug('=== PART 2 COMPLETE === Updated: ' + successCount + ' | Failed: ' + failCount);
} else {
    System.debug('=== PART 2: NO RECORDS TO UPDATE ===');
}