Add event status trigger, improve test coverage, and UI enhancements
- Add event-status-changed trigger for SmoothSchedule Activepieces piece - Add comprehensive test coverage for payments, tickets, messaging, mobile - Add test coverage for core services, signals, consumers, and views - Improve Activepieces UI: templates, billing hooks, project hooks - Update marketing automation showcase and workflow visual components - Add public API endpoints for availability 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -10,32 +10,15 @@ import {
|
||||
CheckCircle2,
|
||||
FileSignature,
|
||||
FileCheck,
|
||||
Scale
|
||||
Scale,
|
||||
Sparkles
|
||||
} from 'lucide-react';
|
||||
import CodeBlock from '../../components/marketing/CodeBlock';
|
||||
import WorkflowVisual from '../../components/marketing/WorkflowVisual';
|
||||
import CTASection from '../../components/marketing/CTASection';
|
||||
|
||||
const FeaturesPage: React.FC = () => {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const pluginExample = `# Custom Webhook Plugin
|
||||
import requests
|
||||
|
||||
def execute(context):
|
||||
event = context['event']
|
||||
|
||||
# Send data to external CRM
|
||||
response = requests.post(
|
||||
'https://api.crm.com/leads',
|
||||
json={
|
||||
'name': event.customer.name,
|
||||
'email': event.customer.email,
|
||||
'source': 'SmoothSchedule'
|
||||
}
|
||||
)
|
||||
|
||||
return response.status_code == 200`;
|
||||
|
||||
return (
|
||||
<div className="bg-white dark:bg-gray-900 min-h-screen pt-24">
|
||||
|
||||
@@ -55,7 +38,7 @@ def execute(context):
|
||||
<div className="grid lg:grid-cols-2 gap-16 items-center">
|
||||
<div>
|
||||
<div className="inline-flex items-center gap-2 px-3 py-1 rounded-full bg-purple-100 dark:bg-purple-900/30 text-purple-600 dark:text-purple-400 text-sm font-medium mb-6">
|
||||
<Zap className="w-4 h-4" />
|
||||
<Sparkles className="w-4 h-4" />
|
||||
<span>{t('marketing.features.automationEngine.badge')}</span>
|
||||
</div>
|
||||
<h2 className="text-3xl font-bold text-gray-900 dark:text-white mb-6">
|
||||
@@ -67,10 +50,10 @@ def execute(context):
|
||||
|
||||
<ul className="space-y-4">
|
||||
{[
|
||||
t('marketing.features.automationEngine.features.recurringJobs'),
|
||||
t('marketing.features.automationEngine.features.customLogic'),
|
||||
t('marketing.features.automationEngine.features.fullContext'),
|
||||
t('marketing.features.automationEngine.features.zeroInfrastructure')
|
||||
t('marketing.features.automationEngine.features.visualBuilder'),
|
||||
t('marketing.features.automationEngine.features.aiCopilot'),
|
||||
t('marketing.features.automationEngine.features.integrations'),
|
||||
t('marketing.features.automationEngine.features.templates')
|
||||
].map((item) => (
|
||||
<li key={item} className="flex items-center gap-3">
|
||||
<CheckCircle2 className="w-5 h-5 text-green-500" />
|
||||
@@ -82,7 +65,7 @@ def execute(context):
|
||||
|
||||
<div className="relative">
|
||||
<div className="absolute -inset-4 bg-purple-500/20 rounded-3xl blur-2xl" />
|
||||
<CodeBlock code={pluginExample} filename="webhook_plugin.py" />
|
||||
<WorkflowVisual variant="noshow" trigger="" actions={[]} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user