Need help with custom samd21e18a board and usb upload

So I made this custom samd21e18 board that has an external crystal and I flashed the arduino zero bootloader via arduino ide and jlink edu mini. It worked great in arduino ide 1.0 and I was able to upload code and use the serial monitor! The issue comes with intergrating the project into platformio. I wasnt sure what the platformio.ini file should look like and what other changes I have to make and I wasnt able to use the board with it. I would really like to use platformio as I have used it with other boards and all my existing code is in there. As for it working on Arduino IDE, I used the Rapid Prototypes TAU arduino board to upload code as the pin descriptions are similar even though that board uses the samd21e17a. Also I was able to upload code using the jlink in platformio.

this is my .ini file:`; PlatformIO Project Configuration File
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
; Please visit documentation for the other options and examples
; Redirecting...

platform = atmelsam
board = custom_atsamd21e17a
framework = arduino
board_build.variants_dir = custom_arduino_variant
upload_protocol = sam-ba

In general, how do I setup a new custom board in platformio?