diff --git a/sample-sharedflows/SF-PayloadToQueryString/README.md b/sample-sharedflows/SF-PayloadToQueryString/README.md
new file mode 100755
index 00000000..67769a44
--- /dev/null
+++ b/sample-sharedflows/SF-PayloadToQueryString/README.md
@@ -0,0 +1,32 @@
+## USAGE
+
+**create flow callout policy in your proxy**
+
+```xml
+
+
+ FC-PayloadToQueryString
+
+
+
+ ["name"]
+
+ SF-PayloadToQueryString
+
+```
+
+---
+
+## Call the proxy
+
+```sh
+curl --location --request POST {{proxyURL}} \
+--header 'Content-Type: application/json' \
+--data-raw '{
+ "name": "lama",
+ "gender": "female",
+ "age": 26
+}'
+```
+
+
diff --git a/sample-sharedflows/SF-PayloadToQueryString/sharedflowbundle/policies/JS-ExtractPayloadAndAssignQueryString.xml b/sample-sharedflows/SF-PayloadToQueryString/sharedflowbundle/policies/JS-ExtractPayloadAndAssignQueryString.xml
new file mode 100755
index 00000000..2b8ff28e
--- /dev/null
+++ b/sample-sharedflows/SF-PayloadToQueryString/sharedflowbundle/policies/JS-ExtractPayloadAndAssignQueryString.xml
@@ -0,0 +1,6 @@
+
+
+ JS-ExtractPayloadAndAssignQueryString
+
+ jsc://JS-ExtractPayloadAndAssignQueryString.js
+
diff --git a/sample-sharedflows/SF-PayloadToQueryString/sharedflowbundle/resources/jsc/JS-ExtractPayloadAndAssignQueryString.js b/sample-sharedflows/SF-PayloadToQueryString/sharedflowbundle/resources/jsc/JS-ExtractPayloadAndAssignQueryString.js
new file mode 100755
index 00000000..47b0323b
--- /dev/null
+++ b/sample-sharedflows/SF-PayloadToQueryString/sharedflowbundle/resources/jsc/JS-ExtractPayloadAndAssignQueryString.js
@@ -0,0 +1,24 @@
+if(request.content !== null || request.content !== ''){
+ try{
+ var fields = JSON.parse(context.getVariable("SF-PayloadToQueryStrin.fields"));
+ payload = JSON.parse(request.content);
+
+ for(var i in fields){
+ var field = fields[i];
+ if(payload[field] !== undefined){
+ print("[INFO] found key: " + field);
+ context.setVariable("request.queryparam."+field, payload[field]);
+ delete payload[field];
+ }
+ else{
+ print("[WARN] didn't find key: " + field);
+ }
+ }
+ }catch(e){
+ print("[ERROR] Exception Occured:\t" + e);
+ }
+ finally{
+ print("[INFO] Assigning the new payload to the request object");
+ context.setVariable("request.content", JSON.stringify(payload));
+ }
+}
\ No newline at end of file
diff --git a/sample-sharedflows/SF-PayloadToQueryString/sharedflowbundle/sharedflows/default.xml b/sample-sharedflows/SF-PayloadToQueryString/sharedflowbundle/sharedflows/default.xml
new file mode 100755
index 00000000..d6c8aab4
--- /dev/null
+++ b/sample-sharedflows/SF-PayloadToQueryString/sharedflowbundle/sharedflows/default.xml
@@ -0,0 +1,6 @@
+
+
+
+ JS-ExtractPayloadAndAssignQueryString
+
+
\ No newline at end of file