Advanced Usage
Power-user configurations, custom workflows, and performance optimization
Advanced Content
This guide covers advanced configuration options that are intended for experienced users. Incorrect settings can affect platform performance. We recommend testing changes in a staging environment before applying them to production.
Custom Invoice Templates
Umbra ERP supports fully customizable invoice and quote templates. You can define templates using JSON configuration:
{ "name": "Professional Invoice", "version": "2.0.0", "layout": { "header": { "logo_position": "left", "show_company_address": true, "accent_color": "#8B5CF6" }, "body": { "columns": ["description", "quantity", "unit_price", "total"], "show_tax_breakdown": true, "show_discounts": true }, "footer": { "payment_instructions": true, "bank_details": true, "terms_and_conditions": true } }, "numbering": { "prefix": "INV-", "start": 1001, "padding": 5 }}Workflow Automation
Define custom workflows that run on specific triggers. Workflows are defined in YAML format and can chain multiple actions together:
name: invoice-payment-remindertrigger: event: invoice.overdue delay: 3d steps: - name: Send Reminder Email action: email.send template: payment_reminder to: "{{ invoice.customer.email }}" - name: Update Invoice Status action: invoice.update data: reminder_sent: true reminder_date: "{{ now }}" - name: Notify Account Manager action: notification.send channel: slack message: "Invoice {{ invoice.number }} is overdue by {{ invoice.days_overdue }} days" - name: Escalate if Needed condition: "{{ invoice.days_overdue > 30 }}" action: task.create assignee: "{{ invoice.account_manager }}" title: "Escalate overdue invoice {{ invoice.number }}"API & Webhooks
Set up webhooks to receive real-time notifications when events occur in your Umbra ERP workspace:
import express from 'express';import crypto from 'crypto'; const app = express(); // Verify Umbra ERP webhook signaturefunction verifySignature(payload: string, signature: string, secret: string) { const expected = crypto .createHmac('sha256', secret) .update(payload) .digest('hex'); return crypto.timingSafeEqual( Buffer.from(signature), Buffer.from(expected) );} app.post('/webhooks/umbra', express.raw({ type: 'application/json' }), (req, res) => { const signature = req.headers['x-umbra-signature'] as string; const payload = req.body.toString(); if (!verifySignature(payload, signature, process.env.WEBHOOK_SECRET!)) { return res.status(401).json({ error: 'Invalid signature' }); } const event = JSON.parse(payload); switch (event.type) { case 'invoice.paid': console.log('Invoice paid:', event.data.invoice_id); // Update your accounting system break; case 'inventory.low_stock': console.log('Low stock alert:', event.data.product_id); // Trigger reorder workflow break; case 'employee.leave_request': console.log('Leave request:', event.data.employee_id); // Notify manager break; } res.json({ received: true });}); app.listen(3000);Multi-Company Setup
Umbra ERP supports managing multiple companies from a single account. Configure inter-company transactions and consolidated reporting:
# List all companies in your accountumbra companies list # Switch active company contextumbra companies switch --id comp_xyz789 # Generate consolidated report across all companiesumbra reports consolidated --type profit-loss --period 2026-Q1 # Set up inter-company invoiceumbra invoices create --from comp_abc --to comp_xyz --amount 5000Data Import & Export
Migrate data from other systems or export your Umbra ERP data:
# Import customers from CSVumbra import customers --file customers.csv --mapping name,email,phone,company # Import products from another ERPumbra import products --file products.xlsx --format xlsx # Export all invoices for a periodumbra export invoices --from 2026-01-01 --to 2026-03-31 --format csv # Full data export (GDPR compliance)umbra export all --format json --encryptBest Practices
When working with advanced configurations, follow these best practices:
- Always test configuration changes in a staging environment first
- Use version control for workflow YAML files
- Document custom templates for your team
- Set up webhook signature verification for security
- Review user permissions regularly