Zoho Analytics Bulk Api Import json Data
HI,
I’m trying to bulk-update rows in Zoho Analytics, and below are the request and response details. I’d like to understand the required parameters for constructing a bulk API request to import or update data in a table using Deluge. Any guidance on this would be greatly appreciated.
- workspace_id = vars_map.get("workspace_id");
- payments_table_id = vars_map.get("payment_view_id");
- org_id = vars_map.get("org_id");
- info "Preparing to bulk update " + updated_payments_list.size() + " payment records in analytics table";
- // Prepare bulk update data
- update_rows_list = List();
- for each payment_map in updated_payments_list
- {
- paystand_payment_id = payment_map.get("paystand_payment_id");
- deposit_id = payment_map.get("deposit_id");
- transfer_id = payment_map.get("transfer_id");
- // Build update row
- update_row = Map();
- update_row.put("Paystand Payment ID",paystand_payment_id);
- update_row.put("QB Deposit ID",deposit_id);
- update_row.put("Paystand Transfer_ID",transfer_id);
- update_rows_list.add(update_row);
- }
- // Execute bulk update
- analytics_headers = Map();
- analytics_headers.put("ZANALYTICS-ORGID",org_id);
- //analytics_headers.put("Content-Type","multipart/form-data");
- analytics_headers.put("Content-Type","application/json");
- analytics_headers.put("Accept","application/json");
- // Prepare bulk import config
- configMap = Map();
- configMap.put("importType","updateadd");
- configMap.put("fileType","json");
- configMap.put("autoIdentify",true);
- configMap.put("onError","skiprow");
- match_columns = List();
- match_columns.add("Paystand Payment ID");
- configMap.put("matchingColumns",match_columns);
- encodedJson = zoho.encryption.urlEncode(configMap.toString());
- // Convert rows data to JSON string
- payloadMap = Map();
- payloadMap.put("data",update_rows_list);
- //fileObject = payloadMap.toFile("data.json");
- analytics_url = "https://analyticsapi.zoho.com/restapi/v2/workspaces/" + workspace_id + "/views/" + payments_table_id + "/data?CONFIG=" + encodedJson;
- info "Sending bulk update payload to analytics";
- info payloadMap;
- response_map.put("analytics_update_input",payloadMap);
- max_retries3 = {1,2,3};
- success3 = false;
- update_response = null;
- for each retry in max_retries3
- {
- try
- {
- update_response = invokeurl
- [
- url :analytics_url
- type :POST
- parameters:payloadMap.toString()
- headers:analytics_headers
- connection:"paystand_analytics"
- ];
- success3 = true;
- info "Analytics bulk update response";
- info update_response;
- }
- catch (e)
- {
- info "in exception" + e.toString();
- }
- if(!success3)
- {
- info "Retrying ";
- }
- else
- {
- break;
- }
- }
- {
- status : "failure",
- summary : "COMMON_INTERNAL_SERVER_ERROR",
- data : {
- errorCode : 7005,
- errorMessage : "Sorry, an unexpected error occurred when performing this operation. The error has been logged and will be looked into.\n\nIt would be of great help if you could provide us with additional information using the ''Feedback'' link."
- }
- }