ActiveCampaign / activecampaign-api-nodejs

Node.js wrapper for the ActiveCampaign API
MIT License
39 stars 36 forks source link

[FEATURE REQUEST] Migration AC A ENV TO AC B ENV - New service || Enable apis to public #59

Open elribonazo opened 5 years ago

elribonazo commented 5 years ago

Hi all,

Thanks in advance for taking time and reading my proposal.

Main issue: AC does not migrate accounts on AC from A(ENV) to B(ENV) both inside active campaign, imagine for example replicating, cloning the test platform to production and the opposite even though it would have less sense.

We are developing a script to make this migration but we have serious trouble, some entities that were created in A, can't be created in B because they miss fields, even though they exist like that in A, B can't create them. Does no seem to be very consistent. Also, there's no way we can force the forms, lists or entities to have a specific ID. Our issue is that we would need to keep the IDS and keys too after migration.

First problem I found, FORMS POST even though its not documented I could access it but can't set the ID we need to set. After using it its impossible to force the IDS. From the architectural perspective I think i t has a lot more sense to generate a more robust Id not just an integer and also letting users define a unique key value( we could use to search as the ID now)

My feature request would be: Exporting all env info a JSON, Importing env from a JSON. If thats not possible, i'd say at least adding an option in PUT requests to allow users to set custom identifier for whatever they are creating.

elribonazo commented 5 years ago

Something that would also work is the hability to completly reset a test platform, removing everything and removing all the index keys.

That way I can build a script that does the following:

  1. Listing all the forms
  2. Saving all the forms and order array by id
  3. Inserting the forms in the same order

From my understanding, if we had such option I could solve the issue just by running my script in an empty platform.