Importing Extensions in Bulk - CSV File Structure

You can import extensions in bulk by creating a CSV (Comma Separated Values) file specifying all the options to be imported:

  1. Download the 3CX Phone System CSV sample file.
  2. The position of the column must remain as is. The comma-delimited file provides the structure of the columns and their names in the first row. The subsequent rows contain example entries that you need to modify to create extensions with provisioning.
  3. When you have created the CSV, log in to the 3CX Admin Console and go to Admin > Users > Import.
  4. Browse and select your extension CSV file and click on Open to import your extension(s) into 3CX.

This table describes the available fields and requirements: 

FIELD NAME

DESCRIPTION

VALUE

Number

Extension Number

Optional - numeric values only

FirstName

First Name

Alphanumeric

LastName

Last Name

Alphanumeric

EmailAddress

Email Address

Aphanumeric

MobileNumber

Mobile Number

Numeric values , + - ( ) and spaces are also accepted.

OutboundCallerID

Outbound Caller ID

Alphanumeric – Configures the Outbound Caller ID for the extension

DID

List of DIDs assigned to the extension, separated by colon (:)

Example: 36912:*123963321:*961235469

Role

The user’s access role

"<role name=""ROLE"" />", where ROLE is one of the following:

users

managers

receptionists

group_admins

group_owners

system_admins

system_owners

Department

User’s Main Department only

Alphanumeric (Must be an existing Department)

ClickToCallAuth

What to ask the customer for the Talk URL

0 – Name & Email Address

1 – Name

2 – Email

3 – None

WMApprove

Approve participants before they join your meeting

0 – Disable

1 – Enable

WebMeetingFriendlyName

Your Talk and Meet  URL name

Unique alphanumeric string, without spaces.

If empty, 3CX Talk is disabled.

MAC

MAC Address of the first provisioned phone.

Hexadecimal string without spaces or dashes.

Template

Template used by the  IP phone for provisioning

Template file name ie. yealinkT4x.ph.xml

Model

Phone Model name

Model of the first provisioned phone. Values taken from the <model> in the phone templates ie. Yealink T43U

Router

Routing device used

Empty for local phones.

For remote: MAC of parent router phone or SBC ID.

For router phones this field contains their own MAC.

Language

The language used for the phone

Phone language name is dependent on the phone template used.

Ringtone

The ringtone used by the phone

Ringtone name is dependent on the phone template used.

QRingtone

The ringtone used for a queue call

Ringtone name is dependent on the phone template used.

VMEnable

Enable Voice Mail Box for this extension

0 – Voicemail is disabled

1 – Voicemail is enabled

VMLanguage

Voicemail language

Promptset GUID or Promptset Folder name ie. 8210986B-9412-497f-AD77-3A554F4A9BDB

VMPlayMsgDateTime

Read out date/time of message

0 – Do not read

1 – Read in AM/PM Format

2 – Read in 24hr format

VMPIN

PIN number used to access voicemail box

Numeric

VMEmailOptions

Email options

0 – No email notification is sent when receiving a voicemail

1 – Send Email notification only

2 – Send Email Notification with voicemail attached

3 – Send Email notification with voicemail attached, and the voicemail will be deleted from your mailbox

VMNoPin

Disable Voicemail PIN authentication

0 – Disable PIN Authentication for voicemail

1 – Enable PIN Authentication for voicemail

VMPlayCallerID

Play Caller ID

0 – Do not play Caller ID

1 – Play Caller ID

RecordCalls

Record all calls

0 – Do not record all calls

1 – Record all calls for this extension

RecordExternal

Limits recording to external calls only

0 – Disable external calls only recording mode

1 – Enable external calls only recording mode

RecordCanSee

Show Call Recordings

0 – Call recordings not shown to the user

1 – Call recordings shown to the user

RecordCanDelete

Allow deletion of recordings

0 – Does not allow the deletion of recordings by the user

1 – Allows deletion of recordings by the user

RecordStartStop

Enables the user to start and stop call recording

0 – Disallow user to control call recording

1 – Allow user to control call recording

RecordNotify

Notify user when a call recording is made

0 – No email notification is generated when the extension records a call

1 – Receive an email notification with a link to your recording

Disabled

Disable Extension

0 – Extension is enabled

1 – Extension is disabled

HideFWrules

Hide Call Forwarding Rules

0 – Forwarding Rules tab enabled in the 3CX apps

1 – Forwarding Rules tab disabled in the 3CX apps

DisableExternalCalls

Disable External Calls

0 – External calls enabled

1 – External calls disabled

HideInPhonebook

Do not show Extension in 3CX Company phonebook

0 – Extension is shown in 3CX Company Phonebook

1 – Extension is not shown in 3CX Company Phonebook

CallScreening

Call Screening IVR

0 – Disable Call Screening

1 – Enable Call Screening

PinProtected

Outbound Call PIN Protection

0 - PIN Protect disabled

1 - PIN Protect enabled

The user has to call the 777 IVR and enter their VM PIN to allow external calls

PinTimeout

PIN Protect Timeout

The number of seconds allowed for the user to start an outbound call after entering their PIN.

Transcription

User’s transcription settings

Empty if you want to use department settings

0 – No Transcription

1 – Voicemails only

2 – Recordings only

3 – Voicemails & Recordings

AllowLanOnly

Block remote non-tunnel connections

Block or unblock the insecure method of registering remote phones

0 – Do not block connections (insecure!)

1 – Block connections (recommended default)

SIPID

SIP ID

Alphanumeric – Configures the SIP ID for the extension. Must be unique per extension.

DeliverAudio

PBX delivers Audio

0 – PBX does not deliver audio

1 – PBX delivers audio

HotDesk

Enables Hot Desking

0 - Hot Desking disabled

1 - Hot Desking enabled

SRTPMode

Switch on Secure RTP (SRTP)

0 – Disabled

1 – SRTP Enabled

2 – SRTP Enforced

EmailMissedCalls

Send email notification on missed call

0 – Do not send email notification on missed call

1 – Send email notification on missed call

MS365SignInDisabled

Disables Microsoft SSO

Leave empty to enable M365 SSO

1 - Disable M365 SSO

MS365CalendarDisabled

Disables Sync calendars and Teams Presence

Leave empty to enable Sync

1 - Disable Sync

MS365ContactsDisabled

Disables Sync personal contacts from M365

Leave empty to enable Sync

1 - Disable Sync

MS365TeamsDisabled

Disables MS Teams Integration

Leave empty to enable integration

1 - Disable integration

GoogleSignInDisabled

Disables Google SSO

Leave empty to enable Google SSO

1 - Disable Google SSO

GoogleContactsDisabled

Disables sync personal contacts from Google

Leave empty to enable Sync

1 - Disable Sync

GoogleCalendarDisabled

Disables Sync Calendars from Google

Leave empty to enable Sync

1 - Disable Sync

BLF

Defines the BLF mapping for phones and apps.

XML string:

If no BLFs are defined:

<PhoneDevice><BLFS/></PhoneDevice>

If BLFs are defined:

<PhoneDevice><BLFS>

<BLF ID=""id"" BLFNo=""no"" BLFType=""type"" BLFTypeID=""typeid"">text

</BLF>

</BLFS></PhoneDevice>

Values:

BLF ID=""id""

id:

For QueueLogin type keys

  • LOGGEDINQUEUE
  • LOGGEDOUTQUEUE

For all other types of keys

  • -1

BLFNo=""no""

no: (Integer)

Key position. Gaps are allowed.

BLFType=""type""

type: (Text)

  • “BLF” for typeid:0 keys
  • “SpeedDial” for typeid:1 keys
  • “CustomSpeedDial” for typeid:2 keys
  • “SharedParking” for typeid:3 keys
  • “QueueLogin”  for typeid:4 keys
  • “ProfileStatus”  for typeid:5 keys
  • “Line” for typeid:6 keys

BLFTypeID=""typeid""

typeid: (Integer)

  • 0 for BLF
  • 1 for SpeedDial
  • 2 for CustomSpeedDial
  • 3 for SharedParking
  • 4 for QueueLogin
  • 5 for ProfileStatus
  • 6 for Line

text:

  • text is empty for Line, and for QueueLogin “DEFINED BY ID”
  • text for ProfileStatus is an integer
  • 0 for Available
  • 1 for Away
  • 2 for Do Not Disturb
  • 3 for Lunch
  • 4 for Business Trip
  • text for CustomSpeedDial is 3 lines
  • Number to dial
  • First name
  • Last name
  • text for SharedParking is SPX (where X = SP0, SP1 … SP999)
  • text for SpeedDial and BLF is the target internal extension number

Important: If using Microsoft Office to open CSV files, take care that the column for MAC address is NOT presented as a number. To fix, right-click on the MAC address column, select Format Cells… and choose text.

Alternatively, you can create at least one example extension with the settings you want, then export your extension to a CSV file containing the columns required. You can then populate this .csv file with your users, and use the method described above to import it into 3CX.

📄 Notes:

  • Rows describing existing 3CX extensions are skipped.
  • Provisioning information is generated if the phone model is identical to the model names included in the template, otherwise the device will not be added.

Last Updated

This document was last updated on 10 September 2026

https://www.3cx.com/docs/bulk-extension-import/