Skip to the content

Automate Everything !

🤖 Explore with AI: ChatGPT Perplexity Claude Google AI Grok

For Enterprises | Teams | Start-Ups

eZintegrations

eZintegrations – AI Workflows & AI Agents Automation Hub

Automate to Innovate

0
$0.00
eZintegrations

eZintegrations – AI Workflows & AI Agents Automation Hub

Automate to Innovate

Menu
0
$0.00
  • Categories
    • Workflow Automation
    • AI Workflow
    • AI Agent
    • Agentic AI
  • Home
  • Automate Now !
  • About Us
  • Contact
  • Blog
  • Pricing
  • Free AI Workflow
  • Free AI Agents

eZintegrations

  • eZintegrations Introduction
  • Integration Bridge
    • Rename Integration Bridge
    • Enable and Disable Integration Bridge
    • Integration Bridge Save
    • Integration Bridge Run Once
    • Clear Logs of An Integration Bridge
    • Integration Bridge Share Feature
    • Copy Operation
    • Integration Bridge Import/Export
    • Integration Bridge Auto Save Feature
    • View An Integration Bridge
    • Copy Integration Bridge
    • Streaming Logs of Integration Bridge
    • Download Logs of An Integration Bridge
    • Status of Integration Bridge
    • Refresh an Integration Bridge
    • Stop An Integration Bridge
    • Start An Integration Bridge
    • Frequency
  • Feedback
    • Feedback: Tell Us What You Think
  • Understanding Session Timeout
    • Understanding Session Timeout and the Idle Countdown Timer
  • Alerts
    • Alerts
  • Marketplace
    • Marketplace
  • DIY Articles
    • 60+ Transformations for Smarter Data: How eZintegrations Powers Operations
    • From SOAP to GraphQL: Modernizing Integrations with eZintegrations
    • Accelerate Growth with eZintegrations Unified API Marketplace
    • Collaborative Integrations: Sharing Bridges in eZintegrations to Foster Cross-Team Innovation
    • Unlocking Hidden Value in Unstructured Data: eZintegrations AI Document Magic for Strategic Insights
    • Workflow Cloning Wizardry: Replicating Success with eZintegrations Integration Duplication for Rapid Scaling
    • Time Zone Triumph: Global Scheduling in eZintegrations for Synchronized Cross-Border Operations
    • Parallel Processing Power: eZintegrations Multi-Threaded Workflows for Lightning Fast Data Syncs
    • From Data Chaos to Competitive Edge: How eZintegrations AI Syncs Silos and Boosts ROI by 40%
    • From Emails to Insights: eZintegrations AI Turns Chaos into Opportunity
    • Handling XML Responses in eZintegrations
    • Text to Action: Shape Data with Plain English or Python in eZintegrations
    • AI Magic: Send Data to Any Database with a Simple English Prompt in eZintegrations
    • Configuring Netsuite as Source
    • Configuring Salesforce as Source
    • Overcoming Upsert Limitations: A Case Study on Enabling Upsert Operations in APIs without Inherent Support
    • Connecting QuickBooks to Datalake
    • Connecting Salesforce to Netsuite
    • Connecting My-SQL to Salesforce Using Bizdata Universal API
    • Effortless Integration Scheduling: Mastering Biweekly Execution with eZintegrations
    • Connecting MS-SQL or Oracle Database to Salesforce Using Bizdata Universal API
    • Establishing Token-Based Authentication within NetSuite
    • Registering a Salesforce App and Obtaining Client ID / Secret (for API Calls / OAuth)
  • Management
    • Adding Users and Granting Organization Admin Privileges : Step-by-Step Guide
    • Security Matrix
    • Adding Users as an Organization Admin (Step-by-Step Guide)
  • Appendix
    • Pivot Operation Use Cases
    • Efficient Column Renaming in eZintegration Using Python Operation
    • Filter Operation Use Cases
    • Connecting any Database to Database
    • Connecting Data Targets
    • Connecting Data Sources
  • Release Notes
    • Release Notes
  • Accounting & Billing
    • Invoices
    • Billing Information
    • Payment Method
    • Current Plan
    • Plans
    • Dashboard
  • My Profile
    • My Profile
  • OnBoarding
    • Microsoft Login
    • Multi-Factor Authentication
    • Login for New Users
  • Pycode Examples
    • Extract Domain Name from Email using Split
    • Split String with Regular Expression
    • Bulk Rename of Keys
    • Form a JSON Object from array of array
    • URL Parsing
    • Form a JSON Object based on the key and values available in JSON Dataset
    • Convert Empty String in a JSON to a “null” value
    • Generate a OAuth 1.0 Signature or Store a Code Response in a User Defined Variable
    • Rename JSON Key based on other key’s value
  • Sprintf
    • Sprintf
  • Data Source Management
    • Data Source Management
  • Data Source API
    • Response Parameters: Text, XML, and JSON Formats
    • Environment Settings for Reusable and Dynamic Configuration
    • API Numeric Parameters for Pagination and Record Limits
    • API Time Parameters for Date and Time Filtering
    • How to test the Data Source API
    • Pre- Request Scripts
      • Pre- Request Scripts for Amazon S3
      • Pre- Request Scripts for Oracle Netsuite
      • Pre-Request Script for Amazon SP API
      • Pre-Request Scripts
    • API Pagination Methods
      • Custom Pagination
      • Encoded Next Token Pagination
      • Cursor Pagination
      • Pagination with Body
      • Total Page Count Pagination
      • Offset Pagination
      • Next URL Pagination
      • API Pagination Introduction
      • Pagination examples
        • SAP Shipment API Pagination
        • Amazon SP API Pagination
    • API Authorization
      • OAuth 2.0 Authorization
      • OAuth 1.0 Authorization
      • Basic Authentication Method
      • API Key Authorization Method
      • Different Types of API Authorization
  • Console
    • Console: Check Your Data at Every Step
  • eZintegrations Dashboard Overview
    • eZintegrations Dashboard Overview
  • Monitoring Dashboard
    • Monitoring Dashboard
  • Advanced Settings
    • Advanced Settings
  • Summary
    • Summary
  • Data Target- Email
    • Data Target- Email
  • Data Target- Bizintel360 Datalake Ingestion
    • Data Target- Goldfinch Analytics Datalake Ingestion
  • Data Target- Database
    • Data Target – Database SQL Examples
    • Database as a Data Target
  • Data Target API
    • Response Parameters
    • REST API Target
    • Pre-Request Script
    • Test the Data Target
  • Bizdata Dataset
    • Bizdata Dataset Response
  • Data Source- Email
    • Extract Data from Emails
  • Data Source- Websocket
    • WebSocket Data Source Overview
  • Data Source Bizdata Data Lake
    • How to Connect Data Lake as Source
  • Data Source Database
    • How to connect Data Source Database
  • Data Operations
    • Deep Learning
    • Data Orchestration
    • Data Pipeline Controls
    • Data Cleaning
    • Data Wrangling
    • Data Transformation

Goldfinch AI

  • Goldfinch AI Introduction

Bizdata API

  • Universal API for Database
    • API for PostgreSQL Database – Universal API
    • API for Amazon Aurora Database (MySQL/Maria) – Universal API
    • API for Amazon Redshift Database – Universal API
    • API for Snowflake Database – Universal API
    • API for MySQL/Maria Database – Universal API
    • API for MS-SQL Database-Universal API
    • API for Oracle Database- Universal API
    • Introduction to Universal API for Databases
  • SFTP API
    • SFTP API
  • Document Understanding APIs
    • Document Understanding API- Extract data from Documents
  • Web Crawler API
    • Web Crawler API – Fast Website Scraping
  • AI Workflow Testing APIs
    • Netsuite Source Testing API (Netsuite API Replica)
    • Salesforce Testing API (Salesforce API replica)
    • OAuth2.0 Testing API 
    • Basic Auth Testing API 
    • No Auth Testing API
    • Pagination with Body Testing API
    • Next URL Pagination Testing API 
    • Total Page Count Pagination Testing API
    • Cursor Pagination Testing API 
    • Offset Pagination Testing API
  • Import IB API
    • Import Integration service with .JSON file
  • Linux File & Folder Monitoring APIs
    • Monitor Linux Files & Folder using APIs
  • Webhook
    • Webhook Integration-Capture Events in Real Time
  • Websocket
    • Websocket Integration- Fetch Real Time Data
  • Image Understanding
    • Image Understanding API – Extract data from Images

Goldfinch Analytics

  • Visualization Login
    • Enabling Two Factor Authentication
    • Visualization login for analytics users
  • Profile
    • Profile
  • Datalake
    • Datalake
  • Discover
    • Discover
  • Widgets
    • Filter
    • Widget List
    • Widgets Guide
    • Creating Widgets & Adding Widgets to Dashboard
  • Dashboard
    • Dashboard
  • Views
    • Views
  • Filter Queries
    • Filter Queries for Reports and Dashboard
  • Alerts
    • Alerts
  • Management
    • Management
  • Downloading Reports with Filtered Data
    • Downloading Reports with Filtered Data in Goldfinch Analytics
  • Downloads
    • Downloads – eZintegrations Documents & Resources | Official Guides & Manuals
View Categories

Pre-Request Script

Overview

A Pre-Request Script is a piece of code that runs before the execution of an HTTP request.

In eZintegrations, pre-request scripts allow users to modify request headers, parameters, body content, and authentication details after variables are resolved but before the request is sent.

This ensures that requests are dynamically generated, authenticated, and formatted correctly at runtime.

When to Use

Use Pre-Request Scripts when request values must be generated dynamically before execution.

  • Generating authentication signatures
  • Creating OAuth headers
  • Setting timestamps and nonces
  • Encoding parameters
  • Logging debug information
  • Setting dynamic body or header values

How It Works

The script executes before the HTTP request is sent. It calculates required values such as signatures, tokens, timestamps, or hashes and assigns them to request headers or parameters.

After execution, the modified request is sent to the target system.

Example – Generating Signatures for Authentication

Below are examples of Pre-Request Scripts used for different platforms.


Amazon SP API – POST

import time
import datetime, hashlib, hmac
import json

access_key='{{access_key}}'
secret_key='{{secret_key}}'
host='{{host}}'
canonical_uri='{{canonical_uri}}'
body={{body}}

request_parameters=json.dumps(body)
t=datetime.datetime.utcnow()
amzdate=t.strftime('%Y%m%dT%H%M%SZ')
datestamp=t.strftime('%Y%m%d')
method='POST'
service='execute-api'
region='us-east-1'
canonical_querystring=''
canonical_headers='host:'+host+'\n'+'x-amz-date:'+amzdate+'\n'
signed_headers='host;x-amz-date'
payload_hash=hashlib.sha256(request_parameters.encode('utf-8')).hexdigest()

canonical_request=method+'\n'+canonical_uri+'\n'+canonical_querystring+'\n'+canonical_headers+'\n'+signed_headers+'\n'+payload_hash
algorithm='AWS4-HMAC-SHA256'
credential_scope=datestamp+'/'+region+'/'+service+'/aws4_request'
string_to_sign=algorithm+'\n'+amzdate+'\n'+credential_scope+'\n'+hashlib.sha256(canonical_request.encode('utf-8')).hexdigest()

kDate=hmac.new(('AWS4'+secret_key).encode('utf-8'),datestamp.encode('utf-8'),hashlib.sha256).digest()
kRegion=hmac.new(kDate,region.encode('utf-8'),hashlib.sha256).digest()
kService=hmac.new(kRegion,service.encode('utf-8'),hashlib.sha256).digest()
kSigning=hmac.new(kService,'aws4_request'.encode('utf-8'),hashlib.sha256).digest()

signature=hmac.new(kSigning,string_to_sign.encode('utf-8'),hashlib.sha256).hexdigest()
authorization_header=algorithm+' '+'Credential='+access_key+'/'+credential_scope+', '+'SignedHeaders='+signed_headers+', '+'Signature='+signature

Oracle NetSuite – OAuth 1.0 Signature

import datetime
import random
import string
import hashlib
import base64
import hmac
import urllib.parse

oauth_consumer_id='{{consumer_id}}'
oauth_consumer_key='{{consumer_key}}'
oauth_consumer_secret='{{consumer_secret}}'
oauth_token='{{token}}'
oauth_token_secret='{{token_secret}}'

request_method='POST'
url='https://{{account_id}}.suitetalk.api.netsuite.com/services/rest/query/v1/suiteql'

oauth_signature_method='HMAC-SHA256'
oauth_timestamp=str(int(datetime.datetime.now().timestamp()))
oauth_nonce=''.join(random.choices(string.ascii_letters+string.digits,k=11))
oauth_version='1.0'

normalized_string_url=urllib.parse.quote(url,safe='')
normalized_params={
'oauth_consumer_key':oauth_consumer_key,
'oauth_token':oauth_token,
'oauth_signature_method':oauth_signature_method,
'oauth_timestamp':oauth_timestamp,
'oauth_nonce':oauth_nonce,
'oauth_version':oauth_version
}

sorted_params=dict(sorted(normalized_params.items()))
normalized_string_parmas='&'.join([k+'='+v for k,v in sorted_params.items()])
normalized_string_parmas=urllib.parse.quote(normalized_string_parmas,safe='')

base_string=request_method+'&'+normalized_string_url+'&'+normalized_string_parmas
signature_key=oauth_consumer_secret+'&'+oauth_token_secret

oauth_signature=hmac.new(signature_key.encode(),base_string.encode(),hashlib.sha256)
oauth_signature=base64.b64encode(oauth_signature.digest()).decode('UTF-8')
oauth_signature=urllib.parse.quote(oauth_signature,safe='')

signature='OAuth realm="'+oauth_consumer_id+'",oauth_consumer_key="'+oauth_consumer_key+'",oauth_token="'+oauth_token+'",oauth_signature_method="'+oauth_signature_method+'",oauth_timestamp="'+oauth_timestamp+'",oauth_nonce="'+oauth_nonce+'",oauth_version="'+oauth_version+'",oauth_signature="'+oauth_signature+'"'

Azure Cosmos DB – Authorization Header

from wsgiref.handlers import format_date_time
from datetime import datetime
from time import mktime
import base64
from urllib.parse import quote
import hmac
from hashlib import sha256

endpoint_url='{{hostname}}'
master_key='{{master_key}}'
resource_type='{{resource_type}}'
resource_id='{{resource_id}}'

key=base64.b64decode(master_key)
endpoint_method='post'
now=datetime.now()
stamp=mktime(now.timetuple())
date=format_date_time(stamp)

text='{endpoint_method}\n{resource_type}\n{resource_id}\n{date}\n\n'.format(
endpoint_method=endpoint_method.lower(),
resource_type=resource_type.lower(),
resource_id=resource_id,
date=date.lower())

body=text.encode('utf-8')
digest=hmac.new(key,body,sha256).digest()
signature=base64.encodebytes(digest).decode('utf-8')

uri=f'type=master&ver=1.0&sig={signature[:-1]}'
authorization=quote(uri)

Amazon S3 – PUT

import hashlib
import hmac
import datetime

access_key='{{access_key}}'
secret_key='{{secret_key}}'
region='{{region}}'
host='{{host}}'
canonical_uri='/{{canonical_uri}}'
payload='{{payload}}'

method='PUT'
amzdate=datetime.datetime.utcnow().strftime('%Y%m%dT%H%M%SZ')
datestamp=datetime.datetime.utcnow().strftime('%Y%m%d')

payload_hash=hashlib.sha256(payload.encode()).hexdigest()
canonical_headers='host:'+host+'\n'+'x-amz-content-sha256:'+payload_hash+'\n'+'x-amz-date:'+amzdate+'\n'
signed_headers='host;x-amz-content-sha256;x-amz-date'

canonical_request=method+'\n'+canonical_uri+'\n'+'\n'+canonical_headers+'\n'+signed_headers+'\n'+payload_hash
algorithm='AWS4-HMAC-SHA256'
credential_scope=datestamp+'/'+region+'/s3/aws4_request'
string_to_sign=algorithm+'\n'+amzdate+'\n'+credential_scope+'\n'+hashlib.sha256(canonical_request.encode()).hexdigest()

date_key=hmac.new(('AWS4'+secret_key).encode(),datestamp.encode(),hashlib.sha256).digest()
region_key=hmac.new(date_key,region.encode(),hashlib.sha256).digest()
service_key=hmac.new(region_key,'s3'.encode(),hashlib.sha256).digest()
signing_key=hmac.new(service_key,'aws4_request'.encode(),hashlib.sha256).digest()

signature=hmac.new(signing_key,string_to_sign.encode(),hashlib.sha256).hexdigest()
authorization_header=algorithm+' Credential='+access_key+'/'+credential_scope+', SignedHeaders='+signed_headers+', Signature='+signature

Frequently Asked Questions

What is a Pre-Request Script in eZintegrations?

A Pre-Request Script is code that executes before an API request to prepare, modify, or authenticate the request.

When are Pre-Request Scripts executed?

Pre-Request Scripts are executed after variable resolution and immediately before the HTTP request is sent.

Can Pre-Request Scripts modify request headers?

Yes. They can dynamically create, update, or remove headers, including authorization and custom headers.

Are Pre-Request Scripts mandatory for all integrations?

No. They are optional and only required when dynamic processing or authentication logic is needed.

Can I use Pre-Request Scripts for OAuth and signature generation?

Yes. They are commonly used to generate OAuth tokens, AWS signatures, and other authentication credentials.

Can Pre-Request Scripts access request body and parameters?

Yes. Scripts can read and modify request body data, query parameters, and environment variables.

Do Pre-Request Scripts affect performance?

Minimal performance impact may occur depending on script complexity, but properly optimized scripts execute quickly.

Can Pre-Request Scripts be reused across integrations?

Yes. Similar scripts can be reused across multiple sources, operations, and targets with appropriate parameterization.

Notes

  • Ensure credentials are securely stored.
  • Verify correct HTTP method (POST, GET, PATCH, PUT).
  • Use secure timestamp generation.
  • Test authentication in staging before production deployment.
  • Pre-request scripts execute before every request.
Updated on February 19, 2026

What are your Feelings

  • Happy
  • Normal
  • Sad

Share This Article :

  • Facebook
  • X
  • LinkedIn
  • Pinterest
REST API TargetTest the Data Target
Table of Contents
  • Overview
  • When to Use
  • How It Works
  • Example – Generating Signatures for Authentication
  • Amazon SP API – POST
  • Oracle NetSuite – OAuth 1.0 Signature
  • Azure Cosmos DB – Authorization Header
  • Amazon S3 – PUT
  • Frequently Asked Questions
    • What is a Pre-Request Script in eZintegrations?
    • When are Pre-Request Scripts executed?
    • Can Pre-Request Scripts modify request headers?
    • Are Pre-Request Scripts mandatory for all integrations?
    • Can I use Pre-Request Scripts for OAuth and signature generation?
    • Can Pre-Request Scripts access request body and parameters?
    • Do Pre-Request Scripts affect performance?
    • Can Pre-Request Scripts be reused across integrations?
  • Notes
© Copyright 2026 Bizdata Inc. | All Rights Reserved | Terms of Use | Privacy Policy