We host delegated (sub)domains. How can we use Cloudflare?

dns
cname

#1

We host email groups, both on our main domain, and on subdomains (so A, MX, DKIM and SPF records). Also, we have a white-label service, where our customers delegate their (sub)domain to us. So, an example of some of our DNS records would be like (Discourse’s moderation unfortunately thinks I’m trying to include links if I specify dots, hence the (dot)s):

dns1(dot)example(dot)com - our name server record
dns2(dot)example(dot)com - our name server record
example(dot)com - A, MX, DKIM/SPF
sub1(dot)example(dot)com - A, MX, DKIM/SPF
otherdomain1(dot)com - A, MX, DKIM/SPF, with otherdomain1(dot)com delegated to dns1/dns2(dot)example(dot)com for name server records.
sub1(dot)otherdomain2(dot)com - A, MX, DKIM/SPF, with sub1(dot)otherdomain2(dot)com delegated to dns1/dns2(dot)example(dot)com for name server records.

How can we make this work with Cloudflare without asking all our customers to change their (sub)domain delegations? Do we need to use CNAMEs? My understanding is that creating/updating CNAMEs is a manual process/not available through the API?

Thanks,
Mark