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:
- Download the 3CX Phone System CSV sample file.
- 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.
- When you have created the CSV, log in to the 3CX Admin Console and go to Admin > Users > Import.
- 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
For all other types of keys
BLFNo=""no"" no: (Integer) Key position. Gaps are allowed. BLFType=""type"" type: (Text)
BLFTypeID=""typeid"" typeid: (Integer)
text:
|
⚠ 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