Write Custom Activity is more limited in the parameters to pass in data, but does not require Support to set up the data model.
Add Custom Activity is more flexible in terms of parameters to pass in data, but does require Support to set up the data model.
Both these APIs are currently considered in beta status.