| name | client-data-management |
| description | Secure client database for Greek accounting firms. Manages profiles, AFM numbers, compliance history with encryption and GDPR compliance. |
| version | 1.0.0 |
| author | openclaw-greek-accounting |
| homepage | https://github.com/satoshistackalotto/openclaw-greek-accounting |
| tags | ["greek","accounting","client-management","gdpr","onboarding"] |
| metadata | {"openclaw":{"requires":{"bins":"[Truncated]","env":"[Truncated]"},"notes":"Instruction-only skill. Manages client records stored as JSON files in OPENCLAW_DATA_DIR/clients/. No external services or credentials required. Handles GDPR data lifecycle locally.","path_prefix":"/data/ in examples refers to $OPENCLAW_DATA_DIR (default: /data/)"}} |
Client Data Management
This skill provides a secure, file-based client database for Greek accounting firms operating through OpenClaw. It manages all client master data, compliance history, document metadata, and relationship records while enforcing encryption, access control, and GDPR requirements for Greek business operations.
Setup
export OPENCLAW_DATA_DIR="/data"
which jq || sudo apt install jq
mkdir -p $OPENCLAW_DATA_DIR/clients
No external credentials required. Manages client records as JSON files in the local filesystem. Handles GDPR data lifecycle locally.
Core Philosophy
- File-Based Security: Encrypted JSON files managed through OpenClaw, no external database required
- Greek Business Focus: Built around AFM (VAT numbers), EFKA employer IDs, GEMI numbers, and Greek regulatory identifiers
- GDPR by Default: All personal data handled with consent tracking, retention policies, and deletion workflows
- Audit Everything: Every read, write, and delete of client data is logged with user identity and timestamp
- Assistant-Friendly: English interface with structured commands for non-technical accounting assistants
- Integration Hub: Client records link to all other skills — compliance, banking, EFKA, deadlines, OCR
OpenClaw Commands
Client Registration & Profile Management
openclaw clients add --name "ALPHA TRADING AE" --afm EL123456789 --legal-form AE --sector retail
openclaw clients add --name "BETA SERVICES OE" --afm EL987654321 --legal-form OE --sector services --gemi 012345678
openclaw clients update --afm EL123456789 --field registered-address --value "Οδός Αθηνών 45, Αθήνα 10431"
openclaw clients update --afm EL123456789 --field contact-email --value "info@alphatrading.gr"
openclaw clients update --afm EL123456789 --field accountant-assigned --value "maria.g"
openclaw clients view --afm EL123456789 --full-profile
openclaw clients view --afm EL123456789 --compliance-summary
openclaw clients view --name "ALPHA TRADING AE" --format table
openclaw clients deactivate --afm EL123456789 --reason "ceased-trading" --archive-data
openclaw clients reactivate --afm EL123456789 --effective-date 2026-03-01
Client Search & Listing
openclaw clients list --all --format table
openclaw clients list --sector retail --active-only
openclaw clients list --legal-form AE --missing-documents
openclaw clients list --assigned-to "maria.g" --compliance-risk high
openclaw clients search --query "ALPHA" --field name
openclaw clients search --afm EL123456789
openclaw clients search --efka-id 12345678
openclaw clients search --gemi 012345678
openclaw clients portfolio --summary --by-sector
openclaw clients portfolio --compliance-scores --rank-by risk
openclaw clients portfolio --workload-estimate --by-assignee
Compliance History & Filing Records
openclaw clients log-filing --afm EL123456789 --type VAT-monthly --period 2026-01 --status submitted --ref-number "AAΔ-123456"
openclaw clients log-filing --afm EL123456789 --type EFKA-monthly --period 2026-01 --status paid --amount 4250.00
openclaw clients compliance-history --afm EL123456789 --type VAT --last 12-months
openclaw clients compliance-history --afm EL123456789 --all-types --format report
openclaw clients compliance-gaps --afm EL123456789 --flag-missing
openclaw clients compliance-gaps --all-clients --period 2025 --export csv
openclaw clients obligations --afm EL123456789 --next 30-days
openclaw clients obligations --all-clients --due-this-week --prioritize
Document Registry
openclaw clients doc-register --afm EL123456789 --type invoice --file /data/ocr/output/accounting-ready/inv_001.pdf --date 2026-02-01 --amount 5400.00
openclaw clients doc-register --afm EL123456789 --type tax-return --file /data/compliance/e1/EL123456789_2025_e1_form.xml --tax-year 2025
openclaw clients doc-list --afm EL123456789 --type invoice --period 2026-01
openclaw clients doc-list --afm EL123456789 --missing --type bank-statement
openclaw clients doc-find --afm EL123456789 --filename "E1_2025"
openclaw clients doc-summary --afm EL123456789 --by-type --count
openclaw clients doc-status --afm EL123456789 --awaiting-review
openclaw clients doc-status --all-clients --unprocessed --flag-urgent
Contact & Relationship Management
openclaw clients contact-add --afm EL123456789 --name "ΓιώÏγος Παπαδόπουλος" --role "CEO" --email "gp@alphatrading.gr" --phone "+30 210 1234567"
openclaw clients contact-update --afm EL123456789 --contact-id C001 --field phone --value "+30 6944 123456"
openclaw clients contact-list --afm EL123456789 --format table
openclaw clients contact-primary --afm EL123456789 --set C001
openclaw clients note-add --afm EL123456789 --note "Client prefers PDF reports by email end of month"
openclaw clients note-add --afm EL123456789 --type meeting --date 2026-02-15 --summary "Discussed Q1 tax planning"
openclaw clients notes-view --afm EL123456789 --last 10 --type all
GDPR & Data Privacy
openclaw clients gdpr-consent --afm EL123456789 --record --type data-processing --granted-by "ΓιώÏγος Παπαδόπουλος" --date 2026-01-01
openclaw clients gdpr-consent --afm EL123456789 --status
openclaw clients gdpr-export --afm EL123456789 --format json --output /data/gdpr-exports/
openclaw clients gdpr-delete --afm EL123456789 --confirm --reason "client-request" --retention-override
openclaw clients retention-check --all-clients --flag-expired
openclaw clients retention-archive --afm EL123456789 --older-than 7-years --type financial-records
openclaw clients gdpr-audit --period last-year --report
Data Import & Export
openclaw clients import --file /data/imports/client_list.xlsx --validate-afm --dry-run
openclaw clients import --file /data/imports/client_list.xlsx --execute --skip-duplicates
openclaw clients export --all --format xlsx --output /data/exports/all_clients.xlsx
openclaw clients export --afm EL123456789 --format json --include-history
openclaw clients export --filter active --fields name,afm,sector,assignee --format csv
Database Maintenance & Health
openclaw clients validate-afm --all --flag-invalid
openclaw clients check-duplicates --by afm --report
openclaw clients integrity-check --cross-reference compliance-history
openclaw clients health-report --summary
openclaw clients backup --output /data/backups/clients_$(date +%Y%m%d).json --encrypt
openclaw clients backup-list --last 10
openclaw clients restore --backup /data/backups/clients_20260201.json --dry-run
openclaw clients audit-log --afm EL123456789 --last 30-days
openclaw clients audit-log --all --action delete --period last-week
openclaw clients audit-log --user "maria.g" --period last-month
File System Architecture
Client_Data_File_Structure:
client_profiles:
- /data/clients/{afm}/profile.json
- /data/clients/{afm}/contacts.json
- /data/clients/{afm}/identifiers.json
- /data/clients/{afm}/notes.json
compliance_records:
- /data/clients/{afm}/compliance/filings.json
- /data/clients/{afm}/compliance/obligations.json
- /data/clients/{afm}/compliance/gaps.json
document_registry:
- /data/clients/{afm}/documents/registry.json
- /data/clients/{afm}/documents/pending.json
- /data/clients/{afm}/documents/archive-index.json
gdpr_records:
- /data/clients/{afm}/gdpr/consent.json
- /data/clients/{afm}/gdpr/retention-policy.json
- /data/clients/{afm}/gdpr/deletion-log.json
Client Record Schema
Master Profile (profile.json)
Client_Profile:
afm: "EL123456789"
name: "ALPHA TRADING AE"
name_latin: "Alpha Trading AE"
legal_form: "AE"
gemi: "012345678"
efka_employer_id: "12345678"
sector: "retail"
activity_code: "4711"
activity_description: "Retail general merchandise"
vat_regime: "normal"
vat_period: "monthly"
registered_address: "Οδός Αθηνών 45, Αθήνα 10431"
tax_office: "Α' ΑΘΔÎΩÎ"
municipality: "ΑΘΔÎΑ"
status: "active"
Identifiers Record (identifiers.json)
Client_Identifiers:
afm: "EL123456789"
gemi: "012345678"
efka_employer_id: "12345678"
doy_code: "A1"
municipal_id: "ATH-2022-045123"
insurance_class: "B"
mydata_branch_id: null
bank_accounts:
- iban: "GR1601101250000000012300695"
bank: "Alpha Bank"
primary: true
- iban: "GR7601402010540540002502139"
bank: "National Bank of Greece"
primary: false
Filing Record Schema (filings.json entries)
Filing_Record:
filing_id: "VAT-EL123456789-2026-01"
afm: "EL123456789"
type: "VAT-monthly"
period: "2026-01"
due_date: "2026-02-28"
submitted_date: "2026-02-20"
status: "submitted"
reference_number: "ΑΑΔ-123456"
amount_declared: 12500.00
amount_paid: 12500.00
payment_date: "2026-02-20"
submitted_by: "yannis.k"
notes: null
created_at: "2026-02-20T10:15:00Z"
Greek Business Entity Types
Legal_Forms:
AE:
full_name: "Ανώνυμη ΕταιÏεία"
english: "Société Anonyme / Public Ltd"
min_capital: 25000
gemi_required: true
efka_required: true
EPE:
full_name: "ΕταιÏεία ΠεÏιοÏισμένης ΕυθÏνης"
english: "Limited Liability Company"
min_capital: 1
gemi_required: true
IKE:
full_name: "Θδιωτική Κεφαλαιουχική ΕταιÏεία"
english: "Private Capital Company"
min_capital: 0
gemi_required: true
OE:
full_name: "ΟμόÏÏυθμη ΕταιÏεία"
english: "General Partnership"
gemi_required: true
EE:
full_name: "ΕτεÏόÏÏυθμη ΕταιÏεία"
english: "Limited Partnership"
gemi_required: true
ATOMIKI:
full_name: "Ατομική ΕπιχείÏηση"
english: "Sole Trader"
gemi_required: false
Compliance Obligation Templates
Obligation_Templates:
VAT_monthly:
trigger: "legal_form in [AE, EPE, IKE] AND revenue > 1500000"
frequency: monthly
due_day: "last day of following month"
skill_link: "greek-compliance-aade"
VAT_quarterly:
trigger: "vat_regime = normal AND revenue <= 1500000"
frequency: quarterly
due_day: "last day of month following quarter end"
skill_link: "greek-compliance-aade"
EFKA_monthly:
trigger: "efka_employer_id IS NOT NULL"
frequency: monthly
due_day: "last day of following month"
skill_link: "efka-api-integration"
myDATA_continuous:
trigger: "all active businesses"
frequency: continuous
note: "invoices must be submitted within legal timeframe"
skill_link: "aade-api-monitor"
corporate_tax_annual:
trigger: "legal_form in [AE, EPE, IKE, OE, EE]"
frequency: annual
due_month: "June"
skill_link: "greek-compliance-aade"
E3_annual:
trigger: "all active businesses"
Security & Encryption
Encryption Configuration
Encryption:
algorithm: "AES-256-GCM"
key_management: "OpenClaw key vault"
encrypted_fields:
- bank_account_numbers
- contact_personal_data
- gdpr_consent_records
- financial_amounts_in_history
unencrypted_fields:
- afm (required for indexing)
- client_name (required for search)
- status
- sector
key_rotation: "annual"
backup_encryption: "separate key"
Access Control Integration
Data_Access_Rules:
senior_accountant:
read: "all clients"
write: "all clients"
delete: "with confirmation"
gdpr_operations: true
export_all: true
accountant:
read: "assigned clients only"
write: "assigned clients only"
delete: false
gdpr_operations: false
export: "assigned clients only"
assistant:
read: "assigned clients — profile, contacts, document list"
write: "notes, document registry entries"
delete: false
sensitive_fields: "hidden (bank accounts, full financials)"
export: false
viewer:
read: "assigned clients — name, status, next deadline only"
write: false
delete: false
Integration with Other Skills
Skill_Integration:
dashboard_greek_accounting:
provides: ["client list", "compliance scores", "portfolio metrics"]
consumes: ["dashboard requests for client data"]
commands: "openclaw clients portfolio-summary → dashboard aggregation"
greek_compliance_aade:
provides: ["filing records for compliance history"]
consumes: ["client AFM, VAT regime, filing obligations"]
sync: "openclaw clients log-filing after each aade compliance action"
efka_api_integration:
provides: ["EFKA contribution records"]
consumes: ["client EFKA employer ID, employee roster"]
sync: "openclaw clients log-filing --type EFKA after submissions"
cli_deadline_monitor:
provides: ["upcoming deadlines per client"]
consumes: ["client obligation schedule from compliance templates"]
sync: "openclaw clients obligations feeds deadline monitoring"
greek_banking_integration:
provides: ["bank feed status per client"]
consumes: ["client IBAN list from identifiers.json"]
sync: "banking reconciliation references client record"
greek_document_ocr:
provides: ["extracted document data for registry"]
consumes: ["client AFM to tag processed documents"]
[]
[]
Usage Examples
Example 1: Onboarding a New Client
Command: openclaw clients add --name "GAMMA IMPORT OE" --afm EL555444333 --legal-form OE --sector imports --gemi 098765432
System:
1. Validates AFM format (EL + 9 digits)
2. Creates /data/clients/EL555444333/ directory structure
3. Writes profile.json with provided data
4. Generates obligation template based on legal form + sector
5. Creates empty filings.json, contacts.json, documents/registry.json
6. Adds entry to /data/clients/_index.json
7. Logs creation event to audit trail
8. Output: "Client EL555444333 created. 4 recurring obligations configured. Assign accountant: openclaw clients update --afm EL555444333 --field accountant-assigned --value [username]"
Example 2: Monthly Compliance Check
Command: openclaw clients compliance-gaps --all-clients --period 2026-01
System:
1. Reads obligation templates for every active client
2. Cross-references against filings.json for period 2026-01
3. Identifies: 3 clients missing VAT submission, 1 client missing EFKA
4. Checks due dates — 2 are overdue, 2 due within 5 days
5. Output: Formatted table with client name, AFM, missing filing type, due date, assigned accountant
6. Optionally: openclaw clients compliance-gaps --all-clients --period 2026-01 --alert-assignees
Example 3: GDPR Data Export Request
Command: openclaw clients gdpr-export --afm EL123456789 --format json --output /data/gdpr-exports/
System:
1. Collects all data held: profile, contacts, filings, document registry, notes, audit log entries
2. Decrypts encrypted fields for export (requires senior_accountant role)
3. Formats as structured JSON with data categories labeled
4. Writes to /data/gdpr-exports/EL123456789_gdpr_export_20260218.json
5. Logs export event with requesting user and timestamp
6. Output: "GDPR export complete. File: EL123456789_gdpr_export_20260218.json (47 records, 12 categories)"
Example 4: Document Registration After OCR
Command: openclaw clients doc-register --afm EL123456789 --type invoice --file /data/ocr/output/accounting-ready/inv_2026_001.pdf --date 2026-02-10 --amount 3200.00 --vendor "DELTA SUPPLIES AE"
System:
1. Validates client exists and user has write access
2. Checks for duplicate (same file path not already registered)
3. Appends entry to /data/clients/EL123456789/documents/registry.json
4. Updates document count in client index
5. Logs registration to audit trail
6. Output: "Document registered: inv_2026_001.pdf → EL123456789. Registry now contains 23 documents for this client."
Error Handling
openclaw clients validate-afm --afm EL99999999
openclaw clients check-duplicates --afm EL123456789
openclaw clients repair-index
openclaw clients schema-migrate --to-version 2
openclaw clients integrity-report
Audit Log Format
Audit_Event:
event_id: "AUD-20260218-001234"
timestamp: "2026-02-18T10:30:00Z"
user: "maria.g"
role: "assistant"
action: "read"
resource: "client_profile"
afm: "EL123456789"
client_name: "ALPHA TRADING AE"
fields_accessed: ["name", "status", "next_deadline"]
ip_address: "192.168.1.45"
result: "success"
notes: null
Safety & Compliance Guidelines
Data Handling Principles
- Never store raw bank credentials or passwords — only IBANs and account references
- All personal contact data (natural persons) is encrypted at rest
- Client financial history is retained for minimum 10 years per Greek law (Law 4308/2014)
- GDPR Article 17 deletion requests must preserve data required by Greek tax law for retention period
- Separation between clients is absolute — no cross-client data access or reporting without explicit multi-client permission
GDPR Retention Schedule
Retention_Periods:
financial_records: "10 years (Greek accounting law)"
tax_filings: "10 years (tax authority requirement)"
contact_data: "duration of engagement + 3 years"
audit_logs: "5 years"
gdpr_consent_records: "duration of processing + 3 years"
deleted_client_data: "immediately purged except legally mandated retention"
Remember: This skill is the single source of truth for all client master data. Every other skill references client records here. Data quality, completeness, and security in this skill directly determines the quality of all other skill outputs across the entire OpenClaw Greek Accounting system.