Overview
The ServiceNow integration allows your customers to report issues directly through Marker.io's widget, automatically creating trackable incidents in ServiceNow with complete technical context, screenshots, and session details.
How it works
When a user reports an issue through Marker.io, it instantly becomes a ServiceNow incident with all the technical details your IT team needs. Here's what your service desk agents will see:
Incident Short Description: Clear issue title
Caller Information: Reporter's email for follow-up
Detailed Description: Complete technical context including:
Browser and OS information
Screenshot links
Console and network logs
Direct links to the Marker.io issue
Benefits
Zero Manual Entry - All issue details transfer automatically from Marker.io to ServiceNow
Instant Visibility - IT agents see incidents immediately in ServiceNow
Rich Technical Context - Browser info, console logs, and screenshots available for troubleshooting
Complete Tracking - Every issue becomes a trackable incident with full audit trail
Faster Resolution - No time wasted gathering system information
Enterprise Feature
To enable ServiceNow webhooks on your workspace, contact us for a demo β
Data captured
ServiceNow Incident includes:
Issue title (Short Description)
Reporter email (Caller ID)
Detailed description contains:
π Marker ID
π Priority level and issue type
π Due date (if set)
π₯οΈ Browser and OS details
π€ Developer Console & Network logs
π Website URL where issue occurred
π Direct link to Marker.io issue (public and private views)
π· Screenshot URL with proper formatting
π¦ Any custom data fields
How to set it up
You will need to use webhooks to listen when a new issue is created, then use it to create a new incident in ServiceNow.
Connect ServiceNow via n8n
How it works
n8n Webhook receives Marker.io issue data
Format and extract relevant information from the payload
Create incident in ServiceNow with all technical details
Map fields to appropriate ServiceNow incident fields
The result is a fully documented ServiceNow incident that your IT team can immediately action.
Prerequisites
Marker.io account with workspace webhooks
ServiceNow instance with API access
ServiceNow credentials (username/password or OAuth)
n8n instance (self-hosted or cloud)
n8n Setup Instructions
Step 1: Import the Workflow
Import this workflow into your n8n instance or copy/paste the code to import into n8n (at the end of this section)
The workflow contains 3 nodes:
Webhook trigger
Format Marker.io Data (Code node)
Create Incident (ServiceNow node)
n8n Workflow Code
n8n Workflow Code
{
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "0c89174c-6bf6-4dc6-bdd6-1903d8d16baf",
"options": {}
},
"type": "n8n-nodes-base.webhook",
"typeVersion": 2,
"position": [
0,
0
],
"id": "f88ccfcf-40e8-445f-bd14-e77f7226d878",
"name": "Webhook",
"webhookId": "0c89174c-6bf6-4dc6-bdd6-1903d8d16baf"
},
{
"parameters": {
"jsCode": "// Extract data from Marker.io webhook\nconst data = $input.first().json.body.data;\n\n// Format the conversation message\nconst issueTitle = data.title;\nconst issueDescription = data.description ? data.description : 'Not set';\nconst markerId = data.markerId;\nconst priority = data.priority;\nconst issueType = data.issueType.name;\nconst publicUrl = data.publicUrl;\nconst privateUrl = data.privateUrl;\nconst dueDate = data.dueDate;\nconst browser = `${data.browser.name} ${data.browser.version}`;\nconst os = `${data.operatingSystem.family} ${data.operatingSystem.version}`;\nconst website = data.website.url;\nconst contextString = data.contextString;\n\n// Get screenshot URL and add .jpg extension\nlet screenshotUrl = data.screenshotUrl;\nif (screenshotUrl) {\n // Replace the pattern: \"0?\" with \"0.jpg?\"\n screenshotUrl = screenshotUrl.replace(/\\/0\\?/, '/0.jpg?');\n}\n\n// Create formatted message body with Marker.io ticket link\nconst titleBody = `${issueTitle}`;\n\n// Create formatted message body with Marker.io ticket link\nconst noteBody = `π **New Issue Reported via Marker.io**\n\n**Issue:** ${issueTitle}\n**ID:** ${markerId}\n**Type:** ${issueType}\n**Priority:** ${priority}\n**Due Date:** ${dueDate ? new Date(dueDate).toLocaleDateString() : 'Not set'}\n\n**Description:**\n${issueDescription}\n\n**Technical Details:**\nβ’ Browser: ${browser}\nβ’ OS: ${os}\nβ’ Website: ${website}\nβ’ Context: ${contextString}\n\n**Marker.io issue:** ${publicUrl}\n\n**Custom Data:**\n${Object.entries(data.customData || {}).map(([key, value]) => `β’ ${key}: ${value}`).join('\\n')}`;\n\nreturn [{\n json: {\n reporterEmail: data.reporter.email,\n reporterName: data.reporter.name,\n titleBody: titleBody,\n nodeBody: noteBody,\n issueId: data.id,\n markerId: markerId,\n priority: priority,\n issueType: issueType,\n publicUrl: publicUrl,\n privateUrl: privateUrl,\n projectId: data.project.id,\n screenshotUrl: screenshotUrl\n }\n}];"
},
"id": "a7fdddc9-4355-4e8b-8add-cb28125c4c41",
"name": "Format Marker.io Data",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
220,
0
]
},
{
"parameters": {
"content": "# Marker.io to ServiceNow Integration\n**Automatically create ServiceNow incidents with full technical context when bugs are reported through Marker.io**\n\n## π― What this template does\nThis workflow creates a seamless bridge between Marker.io and ServiceNow, your IT service management platform. Every issue submitted through Marker.io's widget automatically becomes a trackable incident in ServiceNow, complete with technical details and visual context. This ensures your IT team can track, prioritize, and resolve bugs efficiently within their existing ITSM workflow.\n\nWhen a bug is reported, the workflow:\n- Captures the complete Marker.io webhook payload\n- Formats all technical details and metadata\n- Creates a new incident in ServiceNow with the reporter information\n- Includes comprehensive technical context and Marker.io links\n- Preserves screenshots, browser info, and custom data\n\n## β¨ Benefits\n- **Automated ticket creation** - No manual data entry required\n- **Complete context** - All bug details transfer automatically\n- **Faster triage** - IT teams see issues immediately in ServiceNow\n- **Better tracking** - Leverage ServiceNow's incident management capabilities\n- **Rich debugging info** - Browser, OS, and screenshot details preserved\n\n## π‘ Use Cases\n- **IT Service Desks**: Streamline bug reporting from end users\n- **Development Teams**: Track production issues with full technical context\n- **QA Teams**: Convert test findings directly into trackable incidents\n- **Support Teams**: Escalate customer-reported bugs to IT with complete details\n\n## π§ How it works\n1. **N8N Webhook receives** Marker.io bug report data\n2. **JavaScript node formats** and extracts relevant information\n3. **ServiceNow node creates** incident with formatted details\n4. **Incident includes** title, description, reporter info, and technical metadata\n5. **Links preserved** to both public and private Marker.io views\n\nThe result is a fully documented ServiceNow incident that your IT team can immediately action, with all the context needed to reproduce and resolve the issue.\n\n## π Prerequisites\n- **Marker.io account** with webhook capabilities\n- **ServiceNow instance** with API access enabled\n- **ServiceNow credentials** (username/password or OAuth)\n- **Appropriate ServiceNow permissions** to create incidents\n\n## π Setup Instructions\n1. **Import this workflow** into your n8n instance\n2. **Configure the Webhook**:\n - Copy the production webhook URL after saving\n - Add to Marker.io: Workspace Settings β Webhooks β Create webhook\n - Select \"Issue Created\" as the trigger event\n3. **Set up ServiceNow credentials**:\n - In n8n, create new ServiceNow credentials\n - Enter your ServiceNow instance URL\n - Add username and password for a service account\n - Test the connection\n4. **Customize field mappings** (optional):\n - Modify the JavaScript code to map additional fields\n - Adjust priority mappings to match your ServiceNow setup\n - Add custom field mappings as needed\n5. **Test the integration**:\n - Create a test issue in Marker.io\n - Verify the incident appears in ServiceNow\n - Check that all data transfers correctly\n\n## π Data Captured\n### ServiceNow Incident includes:\n- **Short Description**: Issue title from Marker.io\n- **Description** containing:\n - π Issue title and ID\n - π Priority level and issue type\n - π Due date (if set)\n - π Full issue description\n - π₯οΈ Browser version and details\n - π» Operating system information\n - π Website URL where issue occurred\n - π Direct links to Marker.io issue (public and private)\n - π¦ Any custom data fields\n - π· Screenshot URL with proper formatting\n\n## π Workflow Components\n- **Webhook Node**: Receives Marker.io POST requests\n- **Code Node**: Processes and formats the data using JavaScript\n- **ServiceNow Node**: Creates the incident using ServiceNow API\n\n[β Read more about Marker.io webhook events](https://help.marker.io/en/articles/3738778-webhook-notifications)",
"height": 2220,
"width": 700
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-840,
-80
],
"id": "aaa5c6c1-1de5-417e-b294-13cd2adb2b3b",
"name": "Sticky Note2"
},
{
"parameters": {
"content": "## π¨ Troubleshooting\n\n**Webhook not triggering:**\n- Verify webhook URL is correctly copied from n8n to Marker.io\n- Check that \"Issue Created\" event is selected in Marker.io webhook settings\n- Ensure webhook is set to \"Active\" status in Marker.io\n- Test with Marker.io's webhook tester feature\n- Check n8n workflow is active and not in testing mode\n\n**ServiceNow incident not created:**\n- Verify ServiceNow credentials are correct and have not expired\n- Check that the service account has permissions to create incidents\n- Test ServiceNow connection directly in n8n credentials settings\n- Check ServiceNow API rate limits haven't been exceeded\n\n**Missing or incorrect data:**\n- Screenshot URL broken: The workflow already handles URL formatting, but verify Marker.io is generating screenshots\n- Custom data missing: Ensure custom fields exist in Marker.io before sending\n- Due date formatting issues: Check your ServiceNow date format requirements\n\n**JavaScript errors in Format node:**\n- Check webhook payload structure hasn't changed in Marker.io updates\n- Verify all field paths match current Marker.io webhook schema\n- Use n8n's data pinning to debug with actual webhook data\n- Check for undefined values when optional fields are missing\n\n**Connection issues:**\n- ServiceNow timeout: Increase timeout in node settings if needed\n- SSL/Certificate errors: Check ServiceNow instance SSL configuration\n- Network restrictions: Ensure n8n can reach your ServiceNow instance\n- Authentication failures: Regenerate ServiceNow credentials if needed\n\n**Testing tips:**\n- Use n8n's \"Execute Workflow\" with pinned test data\n- Enable webhook test mode in Marker.io for safe testing\n- Check ServiceNow incident logs for detailed error messages\n- Monitor n8n execution logs for specific failure points",
"height": 1160,
"width": 440,
"color": 5
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-100,
980
],
"id": "6bc8eb42-948e-423a-9801-3bd6d657f208",
"name": "Sticky Note3"
},
{
"parameters": {
"authentication": "basicAuth",
"resource": "incident",
"operation": "create",
"short_description": "={{ $json.titleBody }}",
"additionalFields": {
"caller_id": "",
"description": "={{ $json.nodeBody }}"
}
},
"type": "n8n-nodes-base.serviceNow",
"typeVersion": 1,
"position": [
440,
0
],
"id": "ff7943a8-f52f-4e2e-a466-596bb89c6a25",
"name": "ServiceNow",
"credentials": {
"serviceNowBasicApi": {
"id": "",
"name": "ServiceNow Basic Auth account"
}
}
}
],
"connections": {
"Webhook": {
"main": [
[
{
"node": "Format Marker.io Data",
"type": "main",
"index": 0
}
]
]
},
"Format Marker.io Data": {
"main": [
[
{
"node": "ServiceNow",
"type": "main",
"index": 0
}
]
]
}
},
"pinData": {},
"meta": {
"templateCredsSetupCompleted": true,
"instanceId": "b8d4a47d3554c1f7fcd3ee16a413d67d707f3769dee6d5380a7d25c6b616c836"
}
}
Step 2: Configure the Webhook
Save the workflow to generate the webhook URL
Copy the test webhook URL
Go to Marker.io: Workspace Settings β Webhooks β Create webhook
Configure:
Name: "ServiceNow Integration with n8n"
URL: Paste your n8n webhook URL
Events: Select "Issue Created"
Projects: Choose specific projects or "All Projects"
Step 3: Set up ServiceNow Credentials
Create ServiceNow credentials:
Ensure you have a service account with incident creation permissions
Note your ServiceNow instance URL (e.g.,
https://your-instance.service-now.com
)
Add credentials to n8n:
In n8n, go to Credentials β Add Credential β ServiceNow
Enter:
Instance URL
Username
Password
Test the connection
Configure field mappings (optional):
Modify the ServiceNow node to map to additional fields:
Impact
Urgency
Category
Assignment Group
Update the JavaScript code if you need custom field transformations
Step 4: Test the Integration
Use Marker.io's "Send sample webhook" feature
Or create a test issue in Marker.io
Verify the incident appears in ServiceNow
Check that all data transfers correctly:
Short description contains the issue title
Caller field shows reporter email
Description contains all technical details
Finally, if all is working well, replace the Test URL from n8n with the Production URL from n8n in Marker.io
Troubleshooting
Webhook not triggering
Webhook not triggering
Verify webhook URL is correct in Marker.io
Check that "Issue Created" event is selected
Test with Marker.io's webhook tester
Ensure workflow is activated in n8n
Check n8n is accessible from the internet (if self-hosted)
ServiceNow incident not created:
ServiceNow incident not created:
Verify ServiceNow credentials are correct in n8n
Check service account has incident creation permissions
Ensure ServiceNow instance URL is correct (include https://)
Test ServiceNow connection directly in n8n credentials settings
Check ServiceNow API rate limits haven't been exceeded
Review n8n execution logs for specific error messages
Missing or incorrect data:
Missing or incorrect data:
Custom data missing:
Ensure custom fields exist in Marker.io before sending
Priority not mapping correctly:
ServiceNow may use different priority values
Add mapping logic in the JavaScript code
Field mapping issues:
Field mapping issues:
Review ServiceNow incident table schema
Check field names and data types in ServiceNow
Modify the JavaScript code to match your ServiceNow configuration
Consider using ServiceNow's Table API to verify field names
Webhook security (optional):
Webhook security (optional):
Validate signatures using X-Hub-Signature-256 header for additional security
More
To learn more about webhooks, check out our general webhook notifications guide