sally docs
This page is rendered from the canonical GitHub docs. Edit on GitHub.
Sally Marketing WordPress integration direction
The preferred WordPress UX is not a Sally form builder. WordPress owners should keep using existing form plugins and connect submissions to Sally Marketing.
MVP integration target
Start with:
- Contact Form 7 integration
- generic webhook/REST fallback
- content gate shortcode/block
WordPress plugin responsibilities
The WordPress connector should stay small:
- connect WordPress to Sally API
- store a restricted Marketing embed token
- map Contact Form 7 fields to
/marketing/submissions, including custom contact fields under thefieldsobject - provide a content gate shortcode/block
- store first-party content access tokens/cookies when the site owner wants persistent anonymous access
It should not include:
- newsletter editor
- campaign builder
- analytics dashboard
- CRM UI
- email sending
Contact Form 7 flow
Contact Form 7 form
-> Sally connector maps core fields and custom fields
-> POST /marketing/submissions
-> Sally records contact, custom profile snapshot, append-only submission, consent, DOI state, audience/campaign events, and content gate access
Example mapped submission payload:
{
"source": "wordpress:cf7:newsletter-footer",
"email": "reader@example.com",
"firstName": "Reader",
"fields": {
"interests": ["recipes", "events"],
"language": "DE"
},
"consent": {
"newsletter": true,
"text": "I want to receive the newsletter",
"sendConfirmation": true
}
}
Example shortcode direction:
[sally_gate key="recipe-access" form="contact-form-7-id"]
Hidden recipe content here
[/sally_gate]
Security
Use a restricted Marketing embed token. The token should only allow:
- create submissions
- check content gate access
- verify access token
- fetch embed config
It must not allow exporting contacts, sending newsletters, changing campaigns, or accessing CRM.
GDPR note
Content access must stay separate from newsletter consent. A recipe gate can unlock after submission or email verification while newsletter opt-in remains an explicit, separate checkbox and consent record.