ARTICLE CONTENT:
Complete Guide: Migrating from AccessAlly Managed to Keap (Major Business Upgrade)
⏱️ Estimated Time: 8-12 hours (plus extensive testing)
🛠️ Technical Level: Intermediate-Advanced
💰 Cost Impact: $0/mo → $79-159+/mo (but eliminates SMTP costs)
🎯 Migration Type: MAJOR UPGRADE – No CRM → Full Business CRM
Why This Migration Is Different
Migrating from AccessAlly Managed to Keap is fundamentally different from other migrations. You’re not just switching CRMs – you’re adding an external CRM for the first time. This brings significant benefits but also complexity.
What changes:
- Contact Storage: WordPress users → Keap contacts (with WordPress user linkage)
- Tag System: Flat AccessAlly tags → Keap tag CATEGORIES (must organize)
- Custom Fields: WordPress user meta → Keap custom fields (typed, underscore prefix)
- Email Sending: WordPress/SMTP → Keap infrastructure (MAJOR deliverability improvement)
- Automation: Simple Email Wizards → Keap Campaign Builder (more powerful, steeper curve)
- Contact ID Linking: NEW requirement – every WordPress user needs Keap Contact ID
Why Migrate from AccessAlly Managed to Keap?
Despite the complexity, common reasons for this upgrade:
- Email Deliverability: #1 reason – Keap’s email infrastructure far superior to WordPress/SMTP
- Inbox Placement Issues: Emails landing in spam with AccessAlly Managed
- Email Volume Limits: Exceeded AccessAlly Managed’s email sending capacity
- Advanced CRM Features: Need sales pipeline, deals, task management, appointment scheduling
- Business Growth: Professional email marketing and CRM capabilities
- Better Automation: Need sophisticated campaign flows beyond simple sequences
- SMS Marketing: Keap supports SMS campaigns (AccessAlly Managed doesn’t)
- E-commerce Features: Keap’s native payment processing and order management
What You’ll Need Before Starting
✅ Required Access & Accounts
- WordPress admin access to your AccessAlly site
- Keap account (must be purchased and set up first)
- AccessAlly license that supports external CRM integration
- Access to your payment gateway (Stripe or PayPal)
- Access to your domain’s DNS settings (for Keap email authentication)
- Budget for Keap: $79-159+/month (varies by contact count)
📋 Complete the Pre-Migration Checklist
Before proceeding, work through the complete Pre-Migration Checklist. Key items include:
- Full backup of WordPress site and database
- Export of all WordPress users (these become Keap contacts)
- Complete audit of AccessAlly tags (how will you organize into Keap categories?)
- Map WordPress user meta fields to Keap custom fields
- Data mapping spreadsheet (users → contacts, tags → categories+tags, meta → fields)
- Staging site setup (MANDATORY for this migration type)
- Request 2-site exception from AccessAlly support
- Downtime plan (expect 4-6 hour window)
AccessAlly licenses are typically limited to one live site. You MUST request a temporary 2-site exception from AccessAlly support before connecting Keap to your staging site. This lets you test the entire migration without breaking your live site.
Phase 1: Pre-Migration Setup (4-6 hours)
Step 1: Set Up Your Keap Account
- Purchase Keap subscription (choose tier based on contact count)
- Complete initial account setup wizard
- Configure company information and branding
- Set up email authentication (SPF, DKIM, DMARC records)
- Create your sender email address
- Send test emails to verify deliverability
- Familiarize yourself with Keap’s interface (take the built-in tutorial)
Step 2: Design Your Keap Tag Category Structure
This is CRITICAL. Keap requires tags to be organized into categories. AccessAlly Managed has flat tags. You must decide how to categorize them.
Create a tag mapping spreadsheet:
| Current AccessAlly Tag | Keap Category | Keap Tag Name | Used In Access Rules? |
|---|---|---|---|
| Gold Member | Membership | Gold Member | YES – Module access |
| Silver Member | Membership | Silver Member | YES – Module access |
| Completed Lesson 1 | Progress Tracking | Completed Lesson 1 | YES – Content unlocking |
| Newsletter Subscriber | Lead Status | Newsletter Subscriber | NO – Internal only |
Recommended Keap category structure:
- Membership: Gold Member, Silver Member, Bronze Member, etc.
- Progress Tracking: Completed Lesson X, Finished Module Y
- Lead Status: Newsletter, Lead, Customer, VIP
- Engagement: Attended Webinar, Downloaded Resource, Clicked Link
- Product Access: Course A Access, Course B Access
Step 3: Create Tag Categories and Tags in Keap
- Log into Keap
- Go to CRM → Tags
- Click “Add Tag Category”
- Create each category (Membership, Progress Tracking, etc.)
- Within each category, click “Add Tag”
- Create all tags with exact same names as AccessAlly
- Double-check spelling and capitalization
Step 4: Export Your WordPress Users
AccessAlly Managed stores contacts as WordPress users. You need to export them.
- Go to WordPress → Users
- Use a plugin like “Export Users to CSV” or “WP All Export”
- Export ALL users with these fields:
- User email (required)
- First name
- Last name
- AccessAlly tags (from user meta)
- All custom fields (user meta)
- Membership levels
- Save as CSV: “wordpress-users-export.csv”
AccessAlly tag export:
- Go to AccessAlly → Tags
- Note all active tags
- Verify tags appear in user export CSV
Step 5: Map WordPress Data to Keap
Create a comprehensive data mapping document. Use the Data Mapping Reference Guide.
| WordPress Field | Keap Field | Notes |
|---|---|---|
| user_email | Required – must be unique | |
| first_name | First Name | Standard field |
| last_name | Last Name | Standard field |
| AccessAlly tags | Keap tags (within categories) | Must match exactly for access control |
| User meta: member_level | Custom field: _member_level | Keap prefixes custom fields with underscore |
| User meta: join_date | Custom field: _join_date (Date type) | Ensure date format matches |
| User meta: phone | Phone1 (standard field) | Use Keap’s standard phone field |
Step 6: Create Custom Fields in Keap
For every WordPress user meta field you want to preserve:
- Go to Keap → Admin → Settings → Contact Fields
- Click “Add Custom Field”
- Name it with underscore prefix (e.g., “_member_level”)
- Choose field type (Text, Number, Date, Dropdown, etc.)
- Note the field’s internal name for CSV mapping
- Repeat for all custom fields
WordPress user meta → Keap field type mapping:
- Text meta → Text field
- Number meta → Whole Number or Decimal Number
- Date meta → Date/Time field
- Boolean (yes/no) → Yes/No field
- Dropdown meta → Dropdown List
Step 7: Connect Keap to AccessAlly (Staging Site First)
- On your STAGING site, go to AccessAlly → Settings → General
- Change CRM from “Managed Contacts” to “Keap (Infusionsoft)”
- Enter your Keap API credentials:
- API Key (found in Keap → Admin → Settings → Application)
- Click “Generate API Key” if you don’t have one
- Click Save and Test Connection
- Verify “Connection Successful” message
- AccessAlly will reload with Keap integration features
Step 8: Prepare CSV for Migration Wizard
Transform your WordPress user export into Migration Wizard format:
Required columns:
user_email– Email address (required)first_name– First namelast_name– Last nameaccessally_add_tags– Comma-separated tag names_custom_field_name– One column per Keap custom field
CSV transformation steps:
- Open your WordPress user export
- Rename “email” column to “user_email”
- Ensure tags are comma-separated in “accessally_add_tags” column
- Rename custom field columns to match Keap field names (with underscores)
- Remove WordPress-specific columns (user_id, user_registered, etc.)
- Save as “wp-to-keap-import.csv”
Phase 2: Migration Execution (2-4 hours)
Step 9: Import Contacts via Migration Wizard
- On STAGING site, go to AccessAlly → Migration Wizard
- If not installed, download from AccessAlly → Utilities
- Activate the Migration Wizard plugin
- Click “Import from CSV”
- Upload your prepared CSV
- Map columns to Keap fields
- Choose import options:
- Create contacts in CRM: Check (creates in Keap)
- Update existing users: Check if users exist in WordPress
- Add tags: Check (applies tags from CSV)
- Link Contact IDs: Check (CRITICAL – stores Keap Contact ID in WordPress)
- Click “Start Import”
What happens during import:
- Contacts created in Keap with full data
- Tags applied (within their categories in Keap)
- Custom fields populated
- Keap Contact ID stored in WordPress user meta
- This Contact ID linking enables AccessAlly to check Keap for access control
Step 10: Verify Contact ID Linking (CRITICAL)
This is THE most important check. If Contact IDs don’t link correctly, members will lose access even with correct tags.
- Pick 5 random WordPress users
- Go to WordPress → Users → Edit User
- Scroll to custom fields or use a plugin to view user meta
- Look for “infusionsoft_contact_id” or “keap_contact_id” field
- Copy the Contact ID number
- Go to Keap and search for that Contact ID
- Verify it’s the correct person (email matches)
- Repeat for all 5 test users
Step 11: Update AccessAlly Access Rules
AccessAlly’s access rules should still work, but verify tag names:
- Go through each AccessAlly Module
- Check “Who Can Access” settings
- Verify tag names match Keap exactly (case-sensitive)
- Update any membership level settings
- Check protected page access rules
- Review order form tag assignments
Areas to verify:
- Module access rules
- Page protection settings
- Order form tag assignments
- Email wizard tag triggers (switch to Keap campaigns later)
- Automation triggers
Step 12: Link Payment Gateway Subscriptions
If you have paid members with active Stripe/PayPal subscriptions:
- Export active subscriptions from Stripe or PayPal
- Match subscription IDs to member emails
- Verify subscription IDs stored in WordPress user meta
- Test that subscription webhooks still work
- Verify failed payments cancel access correctly
Detailed guide: Preserving Subscriptions During Migration
Step 13: Configure Email Sending in Keap
One of the main benefits of Keap is superior email deliverability:
- Go to Keap → Admin → Settings → Email Settings
- Configure your sending domain
- Set up SPF, DKIM, and DMARC records (Keap provides exact records)
- Verify email authentication (Keap has built-in checker)
- Send test emails to Gmail, Outlook, Yahoo
- Check inbox placement (not spam)
- Test unsubscribe links
Step 14: Rebuild Email Sequences as Keap Campaigns
AccessAlly Email Wizards can continue to work, but Keap Campaigns are more powerful. Plan to migrate sequences gradually.
Phase 1 (Immediate): Keep Email Wizards Running
- Email Wizards still function with Keap integration
- Emails send via Keap (better deliverability)
- Tag triggers still work
Phase 2 (Post-Migration): Rebuild in Keap
- Document current Email Wizard sequences
- Go to Keap → Marketing → Campaigns
- Click “Create Campaign”
- Use Keap’s visual campaign builder
- Recreate sequences with better branching logic
- Add advanced features (SMS, split testing, etc.)
- Test thoroughly before replacing Email Wizards
AccessAlly Email Wizards → Keap Campaign mapping:
| AccessAlly | Keap Equivalent |
|---|---|
| Email Wizard | Campaign Sequence |
| Trigger: Tag applied | Campaign Goal: Tag applied |
| Delay X days | Delay Timer |
| Send email | Send Email element |
| Add tag | Apply Tag element |
Step 15: Update Forms
Replace AccessAlly opt-in forms or integrate with Keap forms:
Option 1: Keep AccessAlly Forms (Recommended Initially)
- AccessAlly forms still work with Keap
- Forms submit data to Keap automatically
- Tags applied correctly
- Easier transition
Option 2: Use Keap Forms (Later)
- Create forms in Keap → Landing Pages → Forms
- More advanced features (multi-step, conditional logic)
- Better analytics
- Steeper learning curve
Phase 3: Go-Live and Verification (3-4 hours)
Step 16: Extensive Staging Testing
Test comprehensively on staging before touching live site:
- ✅ Contact ID linking verified for 10+ users
- ✅ Member login works
- ✅ Content access rules work correctly for each membership level
- ✅ Tags in Keap control access properly
- ✅ Forms submit to Keap and apply tags
- ✅ Purchase flow works end-to-end
- ✅ Order forms create contacts in Keap
- ✅ Subscription linking works
- ✅ Failed payment handling tested
- ✅ Email sending works via Keap
- ✅ Email deliverability tested (inbox not spam)
Step 17: Switch Live Site to Keap
When staging tests pass completely:
- Schedule downtime (4-6 hour window recommended)
- Notify members of maintenance window
- Put site in maintenance mode
- Create fresh WordPress backup
- Export fresh WordPress user list (catch any new signups since staging)
- Switch AccessAlly to Keap (same steps as staging)
- Import any new users via Migration Wizard
- Verify Contact ID linking for new imports
- Test login for 5-10 members (different levels)
- Verify content access for each membership tier
- Test purchase flow (use Stripe test mode)
- Take site out of maintenance mode
- Monitor intensely for 2-4 hours
Step 18: Complete Post-Migration Verification
Work through the complete Post-Migration Verification Checklist.
✅ Contact Data Integrity
- Verify total contact count in Keap matches WordPress user count
- Check 20 random contacts in Keap for complete data
- Verify Contact IDs stored correctly in WordPress (critical check)
- Check for duplicate contacts
- Verify all tags migrated (spot-check 10 contacts)
- Check custom fields populated correctly
✅ Access & Permissions
- Test login as members from each membership level
- Verify access to protected content works
- Check EACH membership level’s content access
- Test tag-based content unlocking
- Verify members can’t access content they shouldn’t
✅ Email Deliverability
- Send test emails to Gmail, Outlook, Yahoo, ProtonMail
- Check inbox placement (not spam)
- Verify email branding and formatting correct
- Test unsubscribe links work
- Check email open rates compared to AccessAlly Managed baseline
- Verify SPF, DKIM, DMARC records correct (use mail-tester.com)
✅ Forms & Automations
- Test each opt-in form submission
- Verify data reaches Keap correctly
- Test order form purchases (Stripe test mode)
- Confirm post-purchase tags applied
- Test auto-login after purchase
- Verify Email Wizards still trigger
✅ Subscriptions & Payments
- Verify active subscriptions linked correctly
- Test new purchase flow end-to-end
- Test subscription cancellation
- 🚨 CRITICAL: Test failed payment handling
- Verify member access aligns with payment status
- Check Stripe webhooks firing correctly
Test that failed payments correctly cancel member access:
- Create test member with test Stripe subscription
- Use Stripe test card that triggers payment failure
- Wait for webhook to fire
- Verify AccessAlly removes access tags
- Verify member can’t access protected content
- Check Keap shows subscription status updated
If this doesn’t work, members with failed payments will keep access indefinitely (revenue leak + security issue).
Step 19: Monitor for 14 Days
Due to the complexity of adding an external CRM, monitor for TWO weeks (not just 7 days):
- Days 1-3: Immediate access issues, login problems, Contact ID linking issues
- Days 4-7: Email deliverability monitoring, form submission issues
- Days 8-10: Subscription/payment issues, automation issues
- Days 11-14: Long-term stability, edge cases
What to monitor:
- Member support tickets (migration-related questions)
- Email bounce rates (should decrease significantly)
- Email open rates (should increase with Keap)
- Login errors or access issues
- Payment failures and subscription handling
- Form submission success rates
- Keap campaign triggers (if you’ve started using campaigns)
Step 20: Clean Up and Optimize
Once migration is stable (14+ days):
- Deactivate Migration Wizard plugin
- Remove staging site’s 2-site exception (contact AccessAlly support)
- Review email sending costs (eliminated SMTP plugin costs)
- Plan Keap campaign migration (replace Email Wizards gradually)
- Train team on Keap (consider hiring Keap consultant for training)
- Document new processes (how to add contacts, apply tags, etc.)
- Update member documentation if needed
Troubleshooting Common Issues
Issue 1: Contact IDs Not Linking (MOST CRITICAL)
Symptoms: Members have correct tags in Keap but can’t access content. Getting “You don’t have permission” errors.
Causes:
- Contact ID not stored in WordPress user meta during import
- Wrong meta key used (infusionsoft_contact_id vs keap_contact_id)
- Migration Wizard didn’t enable Contact ID linking
- API connection issues during import
Solution:
- Pick affected user in WordPress
- Check user meta for “infusionsoft_contact_id” field
- If missing, re-import user via Migration Wizard with “Link Contact IDs” checked
- If present but wrong, search Keap for correct Contact ID and update manually
- Test access after fixing
- If widespread issue, may need to re-import all users
Issue 2: Tags Not Controlling Access
Symptoms: Members have tags in Keap but content access doesn’t match
Causes:
- Tag names in AccessAlly don’t match Keap exactly (case-sensitive)
- Tags in wrong category in Keap
- Contact ID linking issue (see Issue 1)
- Tag sync delay between Keap and AccessAlly
Solution:
- Verify Contact ID linking first (see Issue 1)
- Check tag name in Keap (exact spelling, capitalization)
- Go to AccessAlly module/page access settings
- Update tag name to EXACTLY match Keap (copy/paste)
- Test access again
- If using Keap campaigns, verify tag application rules
Issue 3: Emails Still Going to Spam
Symptoms: Even with Keap, emails landing in spam folders
Causes:
- SPF/DKIM/DMARC records not configured correctly
- Sending domain not authenticated in Keap
- Email content triggers spam filters
- Need to warm up sending reputation
Solution:
- Go to Keap → Admin → Settings → Email Settings
- Verify all authentication records are green checkmarks
- Use mail-tester.com to check email score
- Ensure “From” address is authenticated
- Warm up sending (start with small batches)
- Review email content for spam trigger words
- Check with Keap support if issues persist
Issue 4: Custom Fields Data Missing
Symptoms: Custom field data didn’t migrate from WordPress to Keap
Causes:
- Custom fields not created in Keap before import
- CSV column names don’t match Keap field names
- Field type mismatch (text vs. number)
- Field names missing underscore prefix
Solution:
- Verify custom fields exist in Keap
- Check field names include underscore prefix
- Export a contact from Keap to see field structure
- Update CSV with correct Keap field names
- Re-import with “Update existing contacts” checked
- Verify data populated for test contacts
Issue 5: WordPress Users Created But Not Keap Contacts
Symptoms: Import created WordPress users but contacts missing in Keap
Causes:
- Migration Wizard “Create in CRM” option not checked
- Keap API rate limit reached
- Keap API credentials expired or incorrect
- Duplicate email addresses in Keap (Keap rejects duplicates)
Solution:
- Verify AccessAlly → Keap connection still active
- Check Migration Wizard import log for errors
- Export list of users without Contact IDs
- Re-import those users with “Create in CRM” checked
- If persistent, import in smaller batches (100 at a time)
Issue 6: Keap Campaign Triggers Not Firing
Symptoms: Created Keap campaigns but they’re not triggering for new signups
Causes:
- Campaign not published/activated
- Campaign goals misconfigured
- Tag trigger name doesn’t match actual tag applied
- Contact already went through campaign (one-time trigger)
Solution:
- Check campaign is Published (not Draft)
- Verify campaign goal matches trigger action (tag applied, form submitted, etc.)
- Check tag name spelling exactly matches
- Test with fresh test contact
- Review Keap campaign reports for troubleshooting
Issue 7: Need to Rollback to AccessAlly Managed
If critical issues occur:
If you need to revert to AccessAlly Managed temporarily:
- Go to AccessAlly → Settings → General
- Change CRM from “Keap” back to “Managed Contacts”
- Click Save
- AccessAlly will reload with Managed Contacts mode
- Member access should restore immediately (tags stored in WordPress)
- Contact AccessAlly support for migration help
- Note: You’ll lose Keap email deliverability during rollback
Cost Analysis: AccessAlly Managed vs. Keap
| Cost Factor | AccessAlly Managed | Keap |
|---|---|---|
| CRM Cost | $0/month | $79-159+/month |
| SMTP Service | $10-100/month (required) | $0 (included) |
| Email Deliverability | 60-80% inbox rate | 95%+ inbox rate |
| Automation Complexity | Simple sequences | Advanced campaigns |
| CRM Features | None | Full CRM, deals, pipelines, appointments |
| SMS Marketing | Not available | Available |
| Learning Curve | Low | High (10-20 hours) |
| Total Monthly Cost | $10-100/month | $79-159/month |
ROI Justification:
- Keap’s superior deliverability often pays for itself through increased engagement
- Eliminating SMTP costs offsets some of Keap’s cost
- CRM features enable better customer management and sales
- Professional email reputation protects brand
Migration Timeline & Downtime
Total Time Estimate: 8-12 hours (plus 10-20 hours learning Keap post-migration)
| Phase | Tasks | Time |
|---|---|---|
| Pre-Migration Setup | Keap account setup, tag category design, field mapping | 4-6 hours |
| Data Export & Prep | Export WordPress users, transform CSV, create tags/fields in Keap | 2-3 hours |
| Staging Migration | Connect Keap, import contacts, verify Contact IDs, test access | 3-4 hours |
| Live Site Switch | Enable Keap on live site, import final users, verify everything | 2-3 hours (downtime) |
| Email Configuration | Set up email authentication, test deliverability, configure sending | 1-2 hours |
| Testing & Verification | Complete post-migration checklist, test all membership levels | 3-4 hours |
| Post-Migration Learning | Learn Keap platform, rebuild campaigns, train team | 10-20 hours (ongoing) |
Recommended Downtime Window: 4-6 hours on a weekend for the live site switch
Should You Hire Professional Help?
Consider professional migration assistance if:
- You have 1,000+ active members (Contact ID linking critical at scale)
- You have complex tag-based access rules across many modules
- You can’t afford 4-6 hours of downtime
- You’re not comfortable with technical migrations
- Your business can’t tolerate access issues
- You want Keap campaigns set up professionally
- You need team training on Keap
Professional help provides:
- Guaranteed Contact ID linking
- Reduced downtime (1-2 hours vs. 4-6)
- Keap campaign setup
- Team training
- Rollback plan
- Real-time troubleshooting
Contact AccessAlly support to discuss migration assistance or Keap specialist recommendations.
Need Help?
Migration Support:
- Review the Migration Support Policy
- For CRM switch assistance: Contact AccessAlly support
- Consider hiring a Keap specialist for campaign setup
Related Guides:
- Pre-Migration Checklist
- Post-Migration Verification
- Data Mapping Reference
- How to Migrate CRMs and Keep Same Site
- Preserving Subscriptions During Migration
- AccessAlly Managed vs CRM Comparison
- ✅ Keap account set up with email authentication
- ✅ Tag categories designed and created in Keap
- ✅ All custom fields created in Keap with underscore prefix
- ✅ All WordPress users imported to Keap
- ✅ Contact IDs properly linked (spot-checked 20+ users)
- ✅ Tags and custom fields preserved
- ✅ Member login working for all membership levels
- ✅ Content access rules working correctly
- ✅ Subscriptions linked and tested
- ✅ Failed payment handling verified
- ✅ Email deliverability tested (95%+ inbox)
- ✅ Forms submitting to Keap correctly
- ✅ Email Wizards still working (or migrated to Keap campaigns)
- ✅ No critical support tickets after 14 days
- ✅ Team trained on Keap basics
Most businesses report that email deliverability improvements alone justify Keap’s cost. Expect to see:
- 15-30% increase in email open rates
- 50-80% reduction in spam complaints
- Significantly fewer “I didn’t get your email” support tickets
- Better brand reputation with major email providers
Take advantage of Keap’s advanced features gradually – you don’t need to use everything immediately.