Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add summarybotng/summarybot-ng --skill n8n-integration-testing-patternsgit clone --depth 1 https://github.com/summarybotng/summarybot-ngWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/summarybotng/summarybot-ng/n8n-integration-testing-patterns)<a href="https://agentmods.dev/skills/summarybotng/summarybot-ng/n8n-integration-testing-patterns"><img src="https://agentmods.dev/badge/skills/summarybotng/summarybot-ng/n8n-integration-testing-patterns/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/summarybotng/summarybot-ng/n8n-integration-testing-patterns"><img src="https://agentmods.dev/badge/skills/summarybotng/summarybot-ng/n8n-integration-testing-patterns.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00042 | $0.03616 |
| Opus 5 | $0.00021 | $0.01808 |
| Sonnet 5 | $0.00008 | $0.00723 |
| Haiku 4.5 | $0.00004 | $0.00362 |
Grade B, and why
n8n-integration-testing-patterns scanned grade B with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Sends data to an external URLmediumData exfiltration
A POST to an outside endpoint may be telemetry or may be exfiltration; either way the mod talks to somewhere, and you should know where.
return await fetch('https://slack.com/api/chat.postMessage', { method: 'POST', Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
const response = await fetch(endpoint, { How it starts
The opening of the file, as written. The whole thing — 547 lines — stays where its author put it; the contents beside it link to each section on GitHub.
n8n Integration Testing Patterns
<default_to_action> When testing n8n integrations:
- VERIFY connectivity and authentication
- TEST all configured operations
- VALIDATE API response handling
- CHECK rate limit behavior
- CONFIRM error handling works
Quick Integration Checklist:
- Credentials valid and not expired
- API permissions sufficient for operations
- Rate limits understood and respected
- Error responses properly handled
- Data formats match API expectations
Critical Success Factors:
- Test in isolation before workflow integration
- Verify OAuth token refresh works
- Check API version compatibility
- Monitor rate limit headers </default_to_action>
Quick Reference Card
Common n8n Integrations
| Category | Services | Auth Type |
|---|---|---|
| Communication | Slack, Teams, Discord | OAuth2, Webhook |
| Data Storage | Google Sheets, Airtable | OAuth2, API Key |
| CRM | Salesforce, HubSpot | OAuth2 |
| Dev Tools | GitHub, Jira, Linear | OAuth2, API Key |
| Marketing | Mailchimp, SendGrid | API Key |
Authentication Types
| Type | Setup | Refresh |
|---|---|---|
| OAuth2 | User authorization flow | Automatic token refresh |
| API Key | Manual key entry | Manual rotation |
| Basic Auth | Username/password | No refresh needed |
| Header Auth | Custom header | Manual rotation |
Connectivity Testing
// Test integration connectivity
async function testIntegrationConnectivity(nodeName: string): Promise<ConnectivityResult> {
const node = await getNodeConfig(nodeName);
// Check credential exists
if (!node.credentials) {
return { connected: false, error: 'No credentials configured' };
}
// Test based on integration type
switch (getIntegrationType(node.type)) {
case 'slack':
return await testSlackConnectivity(node.credentials);
case 'google-sheets':
return await testGoogleSheetsConnectivity(node.credentials);
case 'jira':
return await testJiraConnectivity(node.credentials);
case 'github':
return await testGitHubConnectivity(node.credentials);
default:
return await testGenericAPIConnectivity(node);
}
}
// Slack connectivity test
async function testSlackConnectivity(credentials: any): Promise<ConnectivityResult> {
try {
const response = await fetch('https://slack.com/api/auth.test', {
headers: { 'Authorization': `Bearer ${credentials.accessToken}` }
});
const data = await response.json();
return {
connected: data.ok,
workspace: data.team,
user: data.user,
scopes: data.response_metadata?.scopes || []
};
} catch (error) {
return { connected: false, error: error.message };
}
}
// Google Sheets connectivity test
async function testGoogleSheetsConnectivity(credentials: any): Promise<ConnectivityResult> {
try {
const response = await fetch('https://www.googleapis.com/drive/v3/about?fields=user', {
headers: { 'Authorization': `Bearer ${credentials.accessToken}` }
});
if (response.status === 401) {
// Try refresh
const refreshed = await refreshOAuthToken(credentials);
if (refreshed) {
return testGoogleSheetsConnectivity({ ...credentials, accessToken: refreshed });
}
return { connected: false, error: 'Token expired, refresh failed' };
}
const data = await response.json();
return { connected: true, user: data.user };
} catch (error) {
return { connected: false, error: error.message };
}
}
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago First seen · 547 lines · 42 tokens per session scan B b5985ebce008
n8n-integration-testing-patterns is a skill published in the GitHub repository summarybotng/summarybot-ng (2 stars, last pushed 3mo ago), licensed MIT. It adds 42 tokens to every session and 3,616 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it B with 2 findings (sends data to an external url, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
API Integration Helper
AI-powered API integration toolkit for endpoint mapping, schema validation, authentication management, and rate limiting analysis. Maps endpoints from code, validates JSON schemas, detects auth schemes, and analyzes rate limiting strategies.
testing-integration
Integration and contract testing patterns — API endpoint tests, component integration, database testing, Pact contract verification, property-based testing, and Zod schema validation. Use when testing API boundaries, verifying contracts, or validating cross-service integration.
API Rate Limiting Testing
Testing API rate limiting implementations including throttling behavior, burst handling, rate limit headers, and distributed rate limiting patterns.
api-connector-builder
Use when writing a client for someone else's REST or GraphQL API: auth flow choice and token refresh, pagination to exhaustion, retry-with-jitter on transient failures only, rate-limit-aware throttling. NOT inbound callbacks (that is webhooks), NOT chaining services (that is automation-flows), NOT designing your own…
API Integration Architect
Design, implement, debug, and optimize API integrations with expert-level patterns for REST, GraphQL, webhooks, and authentication flows.
watcha-oauth
A guide to adding Watcha sign-in to a website or mobile app through OAuth 2.0, a standard way for users to grant access without sharing their password.