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",
"intent_fields": {
"Group Email": "test@chatgenie.io",
"User Name": "Ben"
},
"meta_data": {
"ticket_id": 1234,
"ticket_board_name": "Help Desk",
"ticket_board_id": 1,
"contact_id": 4567,
"contact_name": "Bruce Wayne",
"contact_email": "Brucy@wayne.net",
"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",
intent_fields: {
"Ticket ID": "#12345",
"Issue Type": "Password Reset",
"Priority": "High",
"Requested By": "john.doe@company.com"
},
meta_data: {
contact_email: "manager@company.com",
ticket_id: 12345,
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",
intent_fields: {
"Team Name": "Engineering",
"User Email": "newdev@company.com",
"Role": "Developer",
"Access Level": "Standard"
},
meta_data: {
contact_email: "hr@company.com",
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",
intent_fields: {
"Database": "production-db",
"User": "analyst@company.com",
"Permission Level": "Read-Only",
"Duration": "30 days"
},
meta_data: {
contact_email: "dba@company.com",
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",
intent_fields: {
"Amount": "$1,250.00",
"Category": "Travel",
"Employee": "sales@company.com",
"Date Range": "Jan 10-12, 2024"
},
meta_data: {
contact_email: "finance@company.com",
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",
intent_fields: {
"Company": "New Client LLC",
"Plan": "Enterprise",
"Contract Value": "$50,000",
"Start Date": "Feb 1, 2024"
},
meta_data: {
contact_email: "sales@company.com",
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",
intent_fields: {
"User Account": "suspicious@company.com",
"Incident Type": "Brute Force Attack",
"Severity": "Critical",
"Action": "Immediate Lockout"
},
meta_data: {
contact_email: "security@company.com",
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",
intent_fields: {
"Vendor": "Office Supplies Inc",
"Invoice": "INV-2024-003",
"Amount": "$3,500.00",
"Due Date": "Jan 30, 2024"
},
meta_data: {
contact_email: "accounting@company.com",
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.