How can I create extensions in bulk?
3CX administrators need to plan ahead on how to construct their 3CX Phone System. Now it is very time consuming to create 1 extension at a time for each user, with their settings and provisioning. There is a very simple way to achieve this – creating a .csv file and importing it. You can create any number of extensions in seconds.
You can download a sample import file in Microsoft Excel format for 3CX PhoneSystem V8 or for 3CX PhoneSystem V9.
Download this sample file and create your PBX configuration to your specifications. Each column is hardcoded in the 3CX Import function and the position of the column must remain as is. The spreadsheet provides the structure of the columns and how they should be named in Row 1. Row 2 contains an example which will create an extension with provisioning.
A total of 25 fields are allowed as part of the import process. They start from column1 Left to right. Extension number is always first.
The table below explains the field requirements and importer expectations. This matches all the fields available for 3CX Phone System Version 8
| Field | Info / values | Version | Enable | Disable |
| Extension number | Extension number to be assigned | 8 | ||
| First Name | Users first name (max 50) | 8 | ||
| Last Name | Users last name (max 50) | 8 | ||
| Email address | Users email address (max 255) | 8 | ||
| Extension ID | The Login ID for the extension | 8 | ||
| Extension Password | The Password for the extension | 8 | ||
| Enable Voicemail | Do you want to enable voicemail | 8 | 1 | 0 |
| Play Caller ID | Play Caller ID in Voicemail | 8 | 1 | 0 |
| Read date / time | Read date and time of Voicemail 0 do not read 1 read in Am/PM format 2 Read in 24 hour format |
8 | ||
| PIN Number | The Voicemail PIN and VOIP Client password | 8 | ||
| Email options | How to notify users of voicemail0= no email notification 1= send email not only 2= send vmail as attachment 3= send as attachment and delete from Mail box |
8 | ||
| Busy Detection | What will determine the extensions busy status0= Use phone status 1= Use PBX status |
8 | ||
| User Status | Assign the user status when phone is booted0= available 1= away |
8 | ||
| Queue Status | Assign the queue login status when phone is booted0= available 1= away |
8 | ||
| Outbound Caller ID | What number should appear on outbound calls made by the user. (max 50) | 8 | ||
| SIP ID | The direct SIP ID for the user (max 50) | 8 | ||
| PBX deliver audio | Should the PBX handle all audio transmission | 8 | 1 | 0 |
| Supports Reinvites | Does the extension support reinvites | 8 | 1 | 0 |
| Supports Replaces | Does the extension support replaces | 8 | 1 | 0 |
| Disable external | Can the extension make external calls | 8 | 1 | 0 |
| Record all call | Do you want to record all from extension | 8 | 1 | 0 |
| Disable extension | Do you want to totally disable extension | 8 | 1 | 0 |
| MAC address | MAC address of the extension (max 12) | 8 | * | |
| Phone model | The make and model of the phone as it appears in the dropdown. Aastra Aastra 51i Aastra 53i Aastra 55i Aastra 57i Aastra 6730i Aastra 6731i Aastra 6751i Aastra 6753i Aastra 6755i Aastra 6757i Cisco SPA Cisco SPA-501G Cisco SPA-502G Cisco SPA-504G Cisco SPA-508G Cisco SPA-509G Cisco SPA-525G Cisco SPA-5XXG + SPA-500S GrandStream GrandStream GXP-1200 GrandStream GXP-2000 GrandStream GXP-2010 GrandStream GXP-2020 Linksys Linksys SPA-901 Linksys SPA-921 Linksys SPA-922 Linksys SPA-941 Linksys SPA-942 Linksys SPA-962 Linksys SPA-962 + SPA-932 Polycom Polycom SPIP320 Polycom SPIP321 Polycom SPIP330 Polycom SPIP331 Polycom SPIP430 Polycom SPIP450 Polycom SPIP550 Polycom SPIP560 Polycom SPIP650 Polycom SPIP670 Polycom SSIP6000 Polycom SSIP7000 Snom Snom 300 Snom 320 Snom 360 Snom 370 Snom 820 Yealink Yealink T20 Yealink T22 Yealink T26 Yealink T28 |
8 | * | |
| Interface | Specify the IP on which the phone shall request the provisioning file | 8 | * | |
| tcxprovisioningIP | IP Address for provisioning 3CX Assistant/Phone | 9 | * | |
| MobileNumber | Extension’s Mobile Number | 9 | ||
| tcxprovisioningtunnel | Provision 3CX Assistant / Phone with Tunnel Functionality | 9 | 1 | 0 |
| tcxprovisioningintegration | Provisions 3CX Assistant to “Make call using 3CX Phone” | 9 | 1 | 0 |
*These fields are all required for provisioning. Failure to input one field, or with incorrectly formatted data will bypass the whole provisioning procedure.
Notes
- Once you had updated the .CSV file with all your entries, you will need to delete the header row and the example in the extension template file and save the file as a .CSV
- If the extension number already exists in the 3CX Phone System, the existing extension settings shall remain intact without any changes or updates. This is by design therefore you cannot edit an existing extension using the import function. If you want to make an edit you need to delete the extension and then re-import it otherwise edit the changes manually.
- Provisioning information will be generated only if the file name in column 24 is exactly identical to the file names provided in this article. You can check any other phones we add as we release newer versions. The naming convention has to be the same as it is shown in the Extensions section / Provisioning Tab / Model Dropdown.
- Provisioning information will not be generated if the IP Address Interface in field 25 does not match a valid IP on which the phone shall request the provisioning file. So this entry must match one of the entries shown in the Extensions section / Provisioning tab / Select interface dropdown.
What about existing installations of 3CX with 50 or more extensions.
There is no export function to export extensions defined and make editing.
The ability to create a template extension in 3CX and apply to many selected existing extensions is also welcome (Specially for settings like enable/diasble external calls, status, queue,..)
What you can do is
you have a master template file with your 50 extensions.
Delete the 50 extensions
Make the edits you need and re-import them.