{"_id":"562bdd1b32ee000d0084fd83","editedParams2":true,"user":"55dd9841cafe7221002a4c62","parentDoc":null,"__v":1,"category":{"_id":"562ba0505a39cd0d009aff23","project":"55dd9f2e0efd5821000d54d9","__v":9,"pages":["562bb0e56562140d001501d6","562bb204d56bc30d00f0cb22","562bd8e79ebc950d000f753a","562bd9785a39cd0d009aff64","562bd9b932ee000d0084fd7e","562bda0c12c2820d00869b9e","562bdd1b32ee000d0084fd83","562bde38ff2da50d002c0aad","562be11e32ee000d0084fd88"],"version":"55dd9f4dab0e4d210045aae9","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2015-10-24T15:14:24.157Z","from_sync":false,"order":33,"slug":"transactional-data-1","title":"Transactional data"},"editedParams":true,"version":{"_id":"55dd9f4dab0e4d210045aae9","__v":39,"project":"55dd9f2e0efd5821000d54d9","createdAt":"2015-08-26T11:13:17.024Z","releaseDate":"2015-08-26T11:13:17.024Z","categories":["55dd9f4dab0e4d210045aaea","55ddb5fa9067202b00ddff6f","55e0472c6bad670d0081f213","55e04764a44fae0d00214671","55e047a9a44fae0d00214672","55e047b258c5460d0076a9a7","55e95e337fc27b2d00d32cf2","55e979bda7ca823900ad549a","55edb8c18dcb210d0056900b","55f0365c8563861700a33765","55f03677d58f9b1900acf996","55f036938eeefc23001ea5de","55f036a38563861700a33767","55f036c08563861700a33769","55f036d02911b72100482cd7","55f036e92911b72100482cd9","55f036fa8563861700a3376b","55f0370ee507711900e58c69","55f0371df6101b1900c70700","55f0374f2911b72100482cdb","55f0375e2911b72100482cdc","560eb0f659cb8d0d0015cd52","560eb25239fad419002ae1e0","561fb64d4d67490d00804b2a","562b9f775a39cd0d009aff22","562ba0505a39cd0d009aff23","562ba149d56bc30d00f0cb18","562ba595f68a5f0d007b1f3b","562ba78fd56bc30d00f0cb1b","562ba8b95a39cd0d009aff27","562baadf6562140d001501d2","562bab37f68a5f0d007b1f3d","562bc1bf9ebc950d000f7523","562bc99ced4bea0d00c11dfa","562bd29c1b98640d00714520","562bd5875a39cd0d009aff60","562bdfabff2da50d002c0aaf","562be0bd5a39cd0d009aff75","57a0b476d8313e1900454439"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"2.0.0","version":"2"},"project":"55dd9f2e0efd5821000d54d9","updates":[],"next":{"pages":[],"description":""},"createdAt":"2015-10-24T19:33:47.461Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"language":"xml","status":200,"name":"","code":"<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">\n   <s:Body>\n      <CreateAddressBookResponse xmlns=\"http://apiconnector.com/v2\">\n         <CreateAddressBookResult xmlns:a=\"http://apiconnector.com\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\">\n            <a:Id>0</a:Id>\n            <a:Name>My Address Book</a:Name>\n            <a:Visibility>Public</a:Visibility>\n            <a:Contacts>0</a:Contacts>\n         </CreateAddressBookResult>\n      </CreateAddressBookResponse>\n   </s:Body>\n</s:Envelope>"}]},"settings":"","examples":{"codes":[{"language":"xml","code":"<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:v2=\"http://apiconnector.com/v2\" xmlns:apic=\"http://apiconnector.com\">\n   <soapenv:Header/>\n   <soapenv:Body>\n      <v2:CreateAddressBook>\n         <v2:apiAddressBook>\n            <apic:Name>My Address Book</apic:Name>\n            <apic:Visibility>Public</apic:Visibility>\n         </v2:apiAddressBook>\n      </v2:CreateAddressBook>\n   </soapenv:Body>\n</soapenv:Envelope>"}]},"auth":"required","params":[{"_id":"55ddbc1e746ace2b00dd6f38","ref":"","in":"body","required":true,"desc":"The name of the address book you're creating. It can't be an existing address book's name, 'Test' or 'All contacts'.","default":"","type":"string","name":"Name"},{"_id":"55ddbc1e746ace2b00dd6f37","ref":"","in":"body","required":false,"desc":"All address books are created as 'Private' by default but you can set it as 'Public' upon creation should you wish to.","default":"","type":"string","name":"Visibility"}],"url":"/v:version/ApiService/CreateAddressBook"},"isReference":false,"order":1,"body":"This method adds multiple pieces of transactional data to contacts asynchronously, which returns an identifier that can be used to check for import progress via the [GetTransactionalDataImportProgress](doc:gettransactionaldataimportprogress) operation.\n\nThis method can be used to add multiple pieces of AccountInsight data, in which case the contact identifier used should be \"account\".\n\nA maximum of 15MB of transactional data can be uploaded in a request.\n\nPlease note that valid transactional data collection names must be unique, even if the collections are differently scoped (e.g. one collection is contact-scoped and another collection is account-scoped (AccountInsight)). \n\nCollection names can only contain alphanumeric characters (A-Z, a-z, 0-9), dashes ( - ) and underscores ( _ ), they can't start with a number and they can't exceed 255 characters in length.\n\nThe possible status types are:\n\n  * 'NotStarted' - The import has been accepted, but has not yet started to process\n  * 'NotFinished' - The import has been accepted, and has started but is yet to finish\n  * 'Finished' - The import has successfully finished processing\n  * 'Failed' - The import failed processing\n  * 'NotAvailableInThisVersion' - This feature is not available in the version of the API you're using\n\n**SOAP action:** [https://[region ID]-api.dotmailer.com/v2/ApiService/ImportTransactionalData](doc:importtransactionaldata)\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"The input and output parameters for this method are:\\n\\n**Input parameters** \\n  * DataCollection - *required; string*\\n  * TransactionalData - *array of TransactionalData*\\n       * TransactionalData \\n            * Key - *required; string*\\n            * ContactIdentifier - *required; string*\\n            * Json - *required; string*\\n\\n**Output parameters** \\n  * ImportTransactionalDataResult\\n       * TransactionalDataImport \\n            * ID - *GUID*\\n            * Status - *string (NotStarted', 'NotFinished', 'Finished', 'Failed')*\",\n  \"title\": \"Input and output parameters\"\n}\n[/block]\n**Example** \n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"using (var client = new ApiServiceClient())\\n{\\n\\tclient.ClientCredentials.UserName.UserName = \\\"username\\\";\\n\\tclient.ClientCredentials.UserName.Password = \\\"password\\\";\\n\\n\\tvar collectionName = \\\"TestCollectionName\\\";\\n\\t\\n\\t\\n\\tvar transactionalData1 = new ApiTransactionalData {\\n\\t                                ContactIdentifier = \\\"nelson.redeker:::at:::example.com\\\",\\n\\t                                Key = \\\"P00000001\\\",\\n\\t                                Json = @\\\"{\\n\\t                                    \\\"\\\"PurchaseDate\\\"\\\": \\\"\\\"2012-11-19T10:01:21Z\\\"\\\",\\n\\t                                    \\\"\\\"TotalExTax\\\"\\\": 111.2000000000,\\n\\t                                    \\\"\\\"TotalIncTax\\\"\\\": 133.4400000000,\\n\\t                                    \\\"\\\"Product\\\"\\\": [\\n\\t                                        {\\n\\t                                            \\\"\\\"Name\\\"\\\": \\\"\\\"Long unlined leather gloves\\\"\\\",\\n\\t                                            \\\"\\\"Brand\\\"\\\": \\\"\\\"Dents\\\"\\\",\\n\\t                                            \\\"\\\"Department\\\"\\\": \\\"\\\"Womenswear\\\"\\\",\\n\\t                                            \\\"\\\"Category\\\"\\\": \\\"\\\"Gloves\\\"\\\",\\n\\t                                            \\\"\\\"PriceExTax\\\"\\\": 111.2000000000,\\n\\t                                            \\\"\\\"ProductID\\\"\\\": \\\"\\\"24920\\\"\\\"\\n\\t                                        }\\n\\t                                    ],\\n\\t                                    \\\"\\\"SalesChannel\\\"\\\": \\\"\\\"In store\\\"\\\",\\n\\t                                    \\\"\\\"SalesSubChannel\\\"\\\": \\\"\\\"London - One New Change\\\"\\\"\\n\\t                                    }\\\"\\n\\t};\\n\\t\\n\\tvar transactionalData2 = new ApiTransactionalData {\\n\\t                                ContactIdentifier = \\\"nelson.redeker@example.com\\\",\\n\\t                                Key = \\\"P00000002\\\",\\n\\t                                Json = @\\\"{\\n\\t                                    \\\"\\\"PurchaseDate\\\"\\\": \\\"\\\"2012-11-19T10:01:21Z\\\"\\\",\\n\\t                                    \\\"\\\"TotalExTax\\\"\\\": 111.2000000000,\\n\\t                                    \\\"\\\"TotalIncTax\\\"\\\": 133.4400000000,\\n\\t                                    \\\"\\\"Product\\\"\\\": [\\n\\t                                        {\\n\\t                                            \\\"\\\"Name\\\"\\\": \\\"\\\"A different pair of long unlined leather gloves\\\"\\\",\\n\\t                                            \\\"\\\"Brand\\\"\\\": \\\"\\\"Dents\\\"\\\",\\n\\t                                            \\\"\\\"Department\\\"\\\": \\\"\\\"Womenswear\\\"\\\",\\n\\t                                            \\\"\\\"Category\\\"\\\": \\\"\\\"Gloves\\\"\\\",\\n\\t                                            \\\"\\\"PriceExTax\\\"\\\": 111.2000000000,\\n\\t                                            \\\"\\\"ProductID\\\"\\\": \\\"\\\"24920\\\"\\\"\\n\\t                                        }\\n\\t                                    ],\\n\\t                                    \\\"\\\"SalesChannel\\\"\\\": \\\"\\\"In store\\\"\\\",\\n\\t                                    \\\"\\\"SalesSubChannel\\\"\\\": \\\"\\\"London - One New Change\\\"\\\"\\n\\t                                    }\\\"\\n\\t};\\n\\t\\n\\tvar transactionalData = new[] { transactionalData1, transactionalData2 };\\n\\t\\n\\tvar createdTransactionalData = client.ImportTransactionalData(collectionName, transactionalData);\\n}\",\n      \"language\": \"csharp\"\n    }\n  ]\n}\n[/block]","excerpt":"Adds multiple pieces of transactional data to contacts asynchronously","slug":"importtransactionaldata","type":"basic","title":"ImportTransactionalData"}

ImportTransactionalData

Adds multiple pieces of transactional data to contacts asynchronously

This method adds multiple pieces of transactional data to contacts asynchronously, which returns an identifier that can be used to check for import progress via the [GetTransactionalDataImportProgress](doc:gettransactionaldataimportprogress) operation. This method can be used to add multiple pieces of AccountInsight data, in which case the contact identifier used should be "account". A maximum of 15MB of transactional data can be uploaded in a request. Please note that valid transactional data collection names must be unique, even if the collections are differently scoped (e.g. one collection is contact-scoped and another collection is account-scoped (AccountInsight)). Collection names can only contain alphanumeric characters (A-Z, a-z, 0-9), dashes ( - ) and underscores ( _ ), they can't start with a number and they can't exceed 255 characters in length. The possible status types are: * 'NotStarted' - The import has been accepted, but has not yet started to process * 'NotFinished' - The import has been accepted, and has started but is yet to finish * 'Finished' - The import has successfully finished processing * 'Failed' - The import failed processing * 'NotAvailableInThisVersion' - This feature is not available in the version of the API you're using **SOAP action:** [https://[region ID]-api.dotmailer.com/v2/ApiService/ImportTransactionalData](doc:importtransactionaldata) [block:callout] { "type": "info", "body": "The input and output parameters for this method are:\n\n**Input parameters** \n * DataCollection - *required; string*\n * TransactionalData - *array of TransactionalData*\n * TransactionalData \n * Key - *required; string*\n * ContactIdentifier - *required; string*\n * Json - *required; string*\n\n**Output parameters** \n * ImportTransactionalDataResult\n * TransactionalDataImport \n * ID - *GUID*\n * Status - *string (NotStarted', 'NotFinished', 'Finished', 'Failed')*", "title": "Input and output parameters" } [/block] **Example** [block:code] { "codes": [ { "code": "using (var client = new ApiServiceClient())\n{\n\tclient.ClientCredentials.UserName.UserName = \"username\";\n\tclient.ClientCredentials.UserName.Password = \"password\";\n\n\tvar collectionName = \"TestCollectionName\";\n\t\n\t\n\tvar transactionalData1 = new ApiTransactionalData {\n\t ContactIdentifier = \"nelson.redeker@example.com\",\n\t Key = \"P00000001\",\n\t Json = @\"{\n\t \"\"PurchaseDate\"\": \"\"2012-11-19T10:01:21Z\"\",\n\t \"\"TotalExTax\"\": 111.2000000000,\n\t \"\"TotalIncTax\"\": 133.4400000000,\n\t \"\"Product\"\": [\n\t {\n\t \"\"Name\"\": \"\"Long unlined leather gloves\"\",\n\t \"\"Brand\"\": \"\"Dents\"\",\n\t \"\"Department\"\": \"\"Womenswear\"\",\n\t \"\"Category\"\": \"\"Gloves\"\",\n\t \"\"PriceExTax\"\": 111.2000000000,\n\t \"\"ProductID\"\": \"\"24920\"\"\n\t }\n\t ],\n\t \"\"SalesChannel\"\": \"\"In store\"\",\n\t \"\"SalesSubChannel\"\": \"\"London - One New Change\"\"\n\t }\"\n\t};\n\t\n\tvar transactionalData2 = new ApiTransactionalData {\n\t ContactIdentifier = \"nelson.redeker@example.com\",\n\t Key = \"P00000002\",\n\t Json = @\"{\n\t \"\"PurchaseDate\"\": \"\"2012-11-19T10:01:21Z\"\",\n\t \"\"TotalExTax\"\": 111.2000000000,\n\t \"\"TotalIncTax\"\": 133.4400000000,\n\t \"\"Product\"\": [\n\t {\n\t \"\"Name\"\": \"\"A different pair of long unlined leather gloves\"\",\n\t \"\"Brand\"\": \"\"Dents\"\",\n\t \"\"Department\"\": \"\"Womenswear\"\",\n\t \"\"Category\"\": \"\"Gloves\"\",\n\t \"\"PriceExTax\"\": 111.2000000000,\n\t \"\"ProductID\"\": \"\"24920\"\"\n\t }\n\t ],\n\t \"\"SalesChannel\"\": \"\"In store\"\",\n\t \"\"SalesSubChannel\"\": \"\"London - One New Change\"\"\n\t }\"\n\t};\n\t\n\tvar transactionalData = new[] { transactionalData1, transactionalData2 };\n\t\n\tvar createdTransactionalData = client.ImportTransactionalData(collectionName, transactionalData);\n}", "language": "csharp" } ] } [/block]