Intent-Based Verification Quickstart
Get verification emails with workflow context set up in 5 minutes.
This is a quickstart guide. For detailed API documentation, see Verification with Intent.
1. Create Scute App
- Sign up at dashboard.scute.io
- Create a new app
- Copy your App ID and API Secret
2. Get Your Credentials
# From your app dashboard → Settings → API Keys
APP_ID="your-app-id"
API_SECRET="your-api-secret"
3. Deploy Your Client
Install Scute (optional - for advanced features):
npm install @scute/nextjs-handlers
Set environment variables:
SCUTE_APP_ID=your-app-id
SCUTE_API_SECRET=your-api-secret
4. Send Intent Verification
const response = await fetch(`https://api.scute.io/v1/verify/${APP_ID}/verifications/intent`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Authorization': API_SECRET // Note: X-Authorization header
},
body: JSON.stringify({
"intent_name": "Add user to Microsoft Teams",
"meta_data": {
"contact_email": "Brucy@wayne.net",
"group_email": "test@chatgenius.io",
"user_name": "Ben",
"ticket_id": 1234,
"ticket_board_name": "Help Desk",
"ticket_board_id": 1,
"contact_id": 4567,
"contact_name": "Bruce Wayne",
"company_id": "2237",
"company_name": "Wayne Enterprises",
"company_types": [
"Client"
]
}
})
});
const { verification_id } = await response.json();
console.log(`Verification created: ${verification_id}`);
5. Check Verification Status
Option A: API
const status = await fetch(`https://api.scute.io/v1/verify/${APP_ID}/verifications/${verification_id}`, {
headers: { 'X-Authorization': API_SECRET }
});
const verification = await status.json();
console.log(`Status: ${verification.status}`); // pending, verified, failed, etc.
Option B: Dashboard
Visit: https://dashboard.scute.io/apps/${APP_ID}/verifications/${verification_id}
6. Setup Webhooks (Optional)
-
Configure endpoint in Settings → Webhooks:
Webhook URL: https://your-app.com/webhooks/scute
Events: verification.email.verified -
Handle webhook in your app:
// POST /webhooks/scute
app.post('/webhooks/scute', (req, res) => {
const { event, verification_id, user_id } = req.body;
if (event === 'verification.email.verified') {
console.log(`User ${user_id} verified!`);
// Proceed with your workflow
}
res.status(200).send('OK');
});
What Happens Next?
- Email sent → User receives verification email with your intent context
- User clicks → Verification completes automatically
- Webhook fired → Your app receives notification (if configured)
- Continue workflow → Proceed with the requested action
Use Cases
- 🎫 Help desk approvals - "Approve ticket #1234"
- 👥 Team invitations - "Add user to Engineering team"
- 🔐 Access requests - "Grant admin access to John"
- ✅ Workflow confirmations - "Confirm expense approval"
Real-World Examples
1. Help Desk Ticket Approval
const response = await fetch(`https://api.scute.io/v1/verify/${APP_ID}/verifications/intent`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Authorization': API_SECRET
},
body: JSON.stringify({
intent_name: "Approve Support Ticket",
meta_data: {
contact_email: "manager@company.com",
ticket_id: "#12345",
issue_type: "Password Reset",
priority: "High",
requested_by: "john.doe@company.com",
ticket_board_name: "IT Support",
contact_name: "Sarah Manager",
company_name: "Acme Corp",
urgency: "high"
}
})
});
2. Team Member Addition
const response = await fetch(`https://api.scute.io/v1/verify/${APP_ID}/verifications/intent`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Authorization': API_SECRET
},
body: JSON.stringify({
intent_name: "Add User to Microsoft Teams",
meta_data: {
contact_email: "hr@company.com",
team_name: "Engineering",
user_email: "newdev@company.com",
role: "Developer",
access_level: "Standard",
employee_id: "EMP-2024-001",
department: "Engineering",
manager_name: "Tech Lead",
start_date: "2024-01-15"
}
})
});
3. Access Permission Request
const response = await fetch(`https://api.scute.io/v1/verify/${APP_ID}/verifications/intent`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Authorization': API_SECRET
},
body: JSON.stringify({
intent_name: "Grant Database Access",
meta_data: {
contact_email: "dba@company.com",
database: "production-db",
user: "analyst@company.com",
permission_level: "Read-Only",
duration: "30 days",
request_id: "REQ-2024-045",
requested_by: "Data Analyst",
business_justification: "Q1 reporting analysis",
expiry_date: "2024-02-15"
}
})
});
4. Expense Approval
const response = await fetch(`https://api.scute.io/v1/verify/${APP_ID}/verifications/intent`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Authorization': API_SECRET
},
body: JSON.stringify({
intent_name: "Approve Expense Report",
meta_data: {
contact_email: "finance@company.com",
amount: "$1,250.00",
category: "Travel",
employee: "sales@company.com",
date_range: "Jan 10-12, 2024",
expense_id: "EXP-2024-156",
employee_name: "Sales Rep",
receipts_count: 8,
policy_compliant: true
}
})
});
5. Customer Onboarding
const response = await fetch(`https://api.scute.io/v1/verify/${APP_ID}/verifications/intent`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Authorization': API_SECRET
},
body: JSON.stringify({
intent_name: "Activate Customer Account",
meta_data: {
contact_email: "sales@company.com",
company: "New Client LLC",
plan: "Enterprise",
contract_value: "$50,000",
start_date: "Feb 1, 2024",
customer_id: "CUST-2024-089",
account_manager: "Senior Sales Rep",
contract_signed: true,
payment_verified: true
}
})
});
6. Security Incident Response
const response = await fetch(`https://api.scute.io/v1/verify/${APP_ID}/verifications/intent`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Authorization': API_SECRET
},
body: JSON.stringify({
intent_name: "Disable Compromised Account",
meta_data: {
contact_email: "security@company.com",
user_account: "suspicious@company.com",
incident_type: "Brute Force Attack",
severity: "Critical",
action: "Immediate Lockout",
incident_id: "INC-2024-001",
detected_at: "2024-01-15T14:30:00Z",
source_ip: "192.168.1.100",
failed_attempts: 25
}
})
});
7. Vendor Payment Authorization
const response = await fetch(`https://api.scute.io/v1/verify/${APP_ID}/verifications/intent`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Authorization': API_SECRET
},
body: JSON.stringify({
intent_name: "Authorize Vendor Payment",
meta_data: {
contact_email: "accounting@company.com",
vendor: "Office Supplies Inc",
invoice: "INV-2024-003",
amount: "$3,500.00",
due_date: "Jan 30, 2024",
vendor_id: "VEN-001",
purchase_order: "PO-2024-012",
approved_by: "Procurement Manager",
budget_code: "OFFICE-2024"
}
})
});
Integration Patterns
1. CRM Integration
Use with Salesforce, HubSpot, or Pipedrive to verify lead qualifications, deal approvals, or contact updates.
2. ITSM Integration
Integrate with ServiceNow, Jira Service Management, or Freshservice for ticket approvals and change management.
3. HR Workflows
Connect with BambooHR, Workday, or ADP for employee onboarding, access requests, and policy confirmations.
4. Financial Systems
Link with QuickBooks, NetSuite, or SAP for expense approvals, purchase orders, and payment authorizations.
5. Project Management
Use with Asana, Monday.com, or Notion for project approvals, resource allocation, and milestone confirmations.