# Migrating from Functions (Classic) to the new Functions Editor

> \[!WARNING]
>
> If you're using [Services](/docs/serverless/functions-assets/functions/create-service) or [Functions (Classic)](/docs/serverless/functions-assets/functions/migrating-functionsclassic-new-functions-editor) and have entered your Auth token directly instead of using an environment variable, you must wait for the Auth token to update across all instances. During this time, your Function or Service returns a `403 Forbidden` HTTP error.

This guide is for users of Functions (Classic) who want to migrate their existing code to the new Functions Editor. If you're new to Twilio Functions, start with the [Functions documentation](/docs/serverless/functions-assets/functions) to learn how to create and manage your serverless applications.

## Advantages

The updated editor offers several advantages:

* It runs on infrastructure that is separate from Functions (Classic) and uses the latest V2 APIs.
* You can access logs live in the Console or later through the Logs endpoint. In Functions (Classic), logs were available only while you viewed them in the Console UI.
* Improved reliability and a refined user interface.
* Better organization of your Twilio applications through the use of [Services](/docs/serverless/api/resource/service).

## Migrate functions from Functions (Classic) to the new editor

1. Go to the Twilio Console and navigate to **Develop > Functions & Assets > Services**.
2. Create a [Service](/docs/serverless/functions-assets/functions/create-service).
3. Copy the code from the existing Functions (Classic) function.
4. In the Functions Editor, choose **Add +** and create a function with the same name in the service you just created.
5. Paste the code from Functions (Classic) into the new function, and then select **Save**.
6. Configure any required [dependencies](/docs/serverless/functions-assets/functions/dependencies) for the service.
7. Configure any required [environment variables](/docs/serverless/functions-assets/functions/variables) for the service.
8. Select **Deploy All** to deploy the service, its functions, and any assets.
9. If any phone numbers still reference the original Functions (Classic) function, update them to reference the new function or functions you created.

> \[!NOTE]
>
> If you have multiple Twilio applications, create a separate Service for each application. Group the functions that belong to a specific application under the corresponding Service.

> \[!WARNING]
>
> Assets (Classic) and the new Functions Editor are not compatible. Re-upload any Assets (Classic) as [Assets](/docs/serverless/functions-assets/assets#get-started-with-assets) before you use them in the new editor.
