Zoho Flow Custom Function Issue

Zoho Flow Custom Function Issue

I have a use case where I will be needing to post data to a wordpress site.  Specifically to a custom post type with a bunch of ACF fields.

I have setup trigger event correctly for Tookan and can receive data from the webhook.

 

In order to post the data to the site I am needing to use a custom function.

I setup the function as a map with parameters passed in as string values for all the values returned from the Tookan webhook.

 

Here is my current code:

 

map Tookan_ReportAutomation(

string tracking_link,

string total_time_spent_at_task_till_completion,

string job_address,

string total_distance,

string order_id,

string customer_id,

string customer_email,

string acknowledged_datetime,

string arrived_datetime,

string started_datetime,

string completed_datetime,

string job_time,string timezone,

string fleet_name,

string fleet_email,

string fleet_phone,

string fleet_id,

string CAR_DETAILS,

string SERVICE_DETAILS,

string LABOUR_CHARGED,

string MECHANIC_EARNINGS,

string CAR_LICENSE_DISC,

string MILEAGE,

string DASH,

string WARNING_LIGHTS,

string DIAGNOSTIC_MACHINE_OUTPUT,

string BRAKES_TYRES,

string FRONT_BRAKE_PADS,

string REAR_BRAKE_PADS_SHOES,

string FRONT_DISCS,

string REAR_DISCS,

string BRAKE_CALIPERS,

string FRONT_TYRES,

string REAR_TYRES,

string SPARE_TYRES,

string JACK_TOOLS,

string FLUIDS,

string ENGINE_OIL,

string TRANSMISSION_OIL,

string BRAKE_FLUID,

string COOLANT,

string ENGINE_BATTERY,

string ENGINE_OIL_LEAKS,

string TRANSMISSION_OIL_LEAKS,

string OTHER_LEAKS,

string DRIVE_BELT_CONDITION,

string FAN_WORKING,

string SPARK_GLOW_PLUGS,

string BATTERY_CORROSION,

string BATTERY_CASE_LEAKS,

string BATTERY_LOAD_TEST,

string BATTERY_VOLTAGE,

string LIGHTS,

string INDICATOR_LIGHTS,

string REVERSE_LIGHTS,

string HEADLIGHTS,

string OTHER_LIGHTS,

string SUSPENSION,

string SHOCKS_STRUT_CONDITION,

string BALL_JOINTS,

string CV_JOINT_AXLE,

string WHEEL_BEARINGS,

string WINDSHIELD_WINDOWS,

string WINDSHIELD_WINDOW_CONDITION,

string WINDSHIELD_WIPERS_OPERATIONAL,

string WINDSHIELD_WIPER_BLADE_CONDITION,

string WASHER_SYSTEM,

string AC,

string AC_BELT_CONDITION,

string AC_AIRFLOW,

string DOORS_MIRRORS,

string DOOR_CONDITION,

string MIRROR_CONDITION,

string TEST_DRIVE,

string STARTER_OPERATIONAL,

string SPEEDOMETER_OPERATIONAL,

string ENGINE_SOUNDS_NORMAL,

string GEARS_CHANGE_SMOOTHLY,

string BRAKES_SOLID_FIRM,

string STEERING_VIBRATES_WHEN_BRAKES_APPLIED,

string SUSPENSION_IS_SMOOTH,

string INDICATOR_CANCELS_AUTOMATICALLY,

string HANDBRAKE_HOLDS_FIRM,

string HANDBRAKE_LIGHT_ON_WHEN_SET,

string OTHER,

string SEATBELTS,

string HOOTER,

string REMOTE_KEYS,

string DOOR_LOCKS,

string ANTENNA,

string EXHAUST_SYSTEM_CONDITION,

string FEEDBACK_ON_ISSUES,

string PARTS_REQUIRED

){

 

                // Define your authentication credentials using Map()

    const authCredentials = Map();

    authCredentials.put("username", “my-email”);

    authCredentials.put("password", "my-password");

 

    // Step 1: Authenticate and get the token

    const authResponse = postUrl(https://my-domain/wp-json/jwt-auth/v1/token, authCredentials);

 

    const authToken = authResponse.token; // Assuming your response structure provides the token

 

    // Step 2: Construct the post data

    const postData = Map();

    postData.put("title", "New Report Title"); // Use a relevant title

    postData.put("content", "Report content goes here."); // Use relevant content

    postData.put("status", "publish");

 

    // Define fields using Map() for ACF values

    const fields = Map();

    fields.put("field_1", CAR_DETAILS);

    fields.put("field_2", DASH);

    // ... (other ACF fields)

    postData.put("fields", fields);

 

                const headers = Map();

                headers.put("Content-Type", "application/json");

                headers.put("Authorization", "Bearer " + authToken); // Include the token in the headers

 

    // Step 3: Make the POST request and capture the response

    const response = postUrl(https://my-domain/wp-json/wp/v2/posts, postData, headers,false);

 

    // Return the API response

    return response;

}

 

I keep getting a syntax error though: Syntax error. Expecting 'throws','sendmail','sendsms','break',function call statement,executeshellscript statement,'pushnotification',assignment statement ,'try','if','for',invokeurl statement,'return',invokeintegration statement,'continue' or 'cancel'. Found 'authCredentials'. at line number 97. Resolve the errors and try again


The same approach in a function in Zoho CRM works just fine and I can post to api endpoints but not from my custom function in Zoho Flow.

 

What am I missing?  Any help would be super appreciated!