# Bring Your Own Key (BYOK)
Source: https://docs.aikeedo.com/advanced/byok
Learn how to enable and manage workspace-level API keys for OpenAI and Anthropic services in your Aikeedo installation.
## Introduction
BYOK (Bring Your Own Key) allows you to let workspace owners use their own OpenAI and Anthropic API keys. This gives workspaces more control over their AI service usage while reducing your central API costs.
## How It Works
When you enable BYOK:
* Workspace owners can add their own API keys in their workspace settings
* Their workspace will use their custom keys instead of your global API keys
* API costs for that workspace will be charged to their own API keys
* Workspaces without custom keys will continue using your global API keys
BYOK helps distribute API costs across workspaces while maintaining central control over feature availability.
In [session-based usage mode](/billing/overview#usage-mode), BYOK workspaces skip session usage gates for zero-cost OpenAI and Anthropic models only. Other models still consume credits and count toward the session cap.
## Enabling BYOK
1. Go to Settings → Integrations in your admin panel
2. Select either OpenAI or Anthropic
3. Toggle the "Custom API keys (BYOK)" switch to enable
4. Click "Save changes"
You can enable BYOK separately for OpenAI and Anthropic services.
## Administrative Benefits
### Cost Management
* Reduce central API costs by letting workspaces use their own keys
* Maintain global API keys as fallback for workspaces without custom keys
* Better cost distribution across high-usage workspaces
### Control
* Enable/disable BYOK at any time
* Choose which AI services support custom keys
* Keep control over feature availability while delegating API costs
## Important Notes
When disabling BYOK for a service, all workspaces using custom keys will automatically switch to your global API key.
* Workspace owners are responsible for managing their API key validity and costs
* Your global API keys serve as fallback when custom keys are not provided
* Workspace members cannot see the custom API keys set by workspace owners
## Troubleshooting
If workspace owners report issues:
1. Verify BYOK is properly enabled for the relevant service
2. Check if the workspace has entered valid API keys
3. Ensure your global API keys are working as fallback
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
# Email Templates
Source: https://docs.aikeedo.com/advanced/email-templates
Customize and manage multilingual email templates in Aikeedo including welcome emails, password resets, and workspace invitations using Twig templating.
## Introduction
Aikeedo provides customizable email templates for all system communications. This guide covers template location, multilingual support, and customization best practices.
## Template Location
All email templates are stored in the `/resources/emails` directory of your Aikeedo installation. This centralized location makes it easy to manage and update your email content.
## Available Templates
Aikeedo comes with the following essential templates:
### Core Templates
* `layout.twig`: Base layout template that provides a consistent design for all emails
* `export.twig`: Template for admin exported data
* `password-reset.twig`: Sent when a user requests a password reset
* `verify-email.twig`: Used for email verification processes
* `welcome.twig`: Sent to new users upon registration
* `workspace-invitation.twig`: Used when inviting users to join a workspace
All email templates extend layout.twig, which serves as the base layout template providing consistent styling across all emails.
## Multilingual Support
Aikeedo supports multilingual email templates through a directory-based structure.
### Setting Up Multilingual Templates
1. Create a directory in `/resources/emails` that matches your locale string from `locale.json`
```bash theme={null}
# Example for Czech language
/resources/emails/cs-CZ/
```
2. Duplicate the template files into the locale-specific directory
```bash theme={null}
/resources/emails/cs-CZ/welcome.twig
/resources/emails/cs-CZ/verify-email.twig
# ... other templates
```
3. Translate the content in the duplicated templates
The `layout.twig` file in the root directory serves as the default layout for all languages. While you can create language-specific versions of layout.twig, this is optional as the default layout is typically suitable for all languages.
### Template Fallback
* Templates in the root `/resources/emails` directory serve as fallbacks
* If a localized template isn't found, the system will use the corresponding template from the root directory
Even if you only use English, it's highly recommended to:
1. Create an `en-US` directory
2. Duplicate your customized templates there
This prevents your customizations from being overwritten during updates.
## Customizing Templates
You have the flexibility to edit these templates to align with your brand voice and specific needs:
1. Navigate to the appropriate language directory (or create one)
2. Copy the template you want to customize from the root directory
3. Make your changes while keeping the Twig template syntax intact
4. Save the file
After editing any email template, you must clear the app cache for the changes to take effect. This ensures that Aikeedo uses the most up-to-date version of your templates.
## Template Format
Email templates in Aikeedo use the Twig templating engine. If you're new to Twig, you can find more information in the [Twig documentation](https://twig.symfony.com/doc/3.x/).
## Best Practices
When customizing email templates:
* Keep your messaging clear and concise
* Use a consistent tone that matches your brand voice
* Test your emails across different email clients
* Include all necessary information without overwhelming the recipient
* Maintain separate language directories for better organization
* Always backup your customized templates before updates
## Related Guides
* [Mailer Configuration](/email/mailer) - Set up email delivery
* [SMTP Setup](/email/smtp) - Configure SMTP server
* [Localization](/advanced/localization) - Manage language settings
Always clear the application cache after modifying email templates to ensure changes take effect immediately.
# Localization
Source: https://docs.aikeedo.com/advanced/localization
Translate Aikeedo into multiple languages using .po files, manage locale.json settings, and enable language selection for global audiences.
## Introduction
Localization enables multilingual support for your Aikeedo platform. This guide covers translation file management, language configuration, and user language selection.
## Translation File Locations
Aikeedo uses separate translation files for different parts of the application:
1. **App and Admin Interface**: `/locale` directory
2. **Landing Page (Home Page)**: `/public/content/plugins/heyaikeedo/default/locale` directory
This is the default location for the landing page translations. The full path structure follows this pattern:
`/{webroot}/content/plugins/{organization}/{theme}/locale`
Where:
* `{webroot}` is typically `public`, but may be `public_html` in some installations (e.g., cPanel)
* `{organization}` is usually `heyaikeedo`, but can be customized to your organization name if you're using a custom theme
* `{theme}` is `default` for the standard theme, but could be different if you're using a custom theme
Always check your specific installation setup to confirm the exact path.
For more information on creating custom themes and managing their translations, refer to our [Theme Development](/development/introduction) guide.
## Translation Process
To translate Aikeedo into a new language or modify existing translations, follow these steps:
1. Navigate to the appropriate directory based on the section you want to translate.
2. Locate the `.po` file for your target language.
3. Open the file in a text editor or a specialized PO file editor.
4. Find the `msgid` entries, which contain the original English text.
5. Enter your translations in the corresponding `msgstr` fields.
Always keep the `msgid` values unchanged. Only modify the `msgstr` entries.
### Example Translation
Here's a simple example of how a translation might look in a `.po` file:
```
msgid "Welcome to Aikeedo"
msgstr "Bienvenue sur Aikeedo"
```
## Managing Available Languages
To enable or disable languages for your Aikeedo instance:
1. Open the `/locale/locale.json` file.
2. Enable or disable languages by setting their `"enabled"` field to `true` or `false`.
3. Set the default language by updating the `"default"` field at the top of the file:
```json theme={null}
{
"default": "en-US",
"locales": [
// ... language entries ...
]
}
```
The default language code must match one of the enabled languages in the `locales` array. For example, if you want to set Spanish as the default, first ensure `es-ES` is enabled, then update the default value to `"es-ES"`.
While Aikeedo includes configuration for 30+ languages, please note that the actual translation strings are not included by default. You'll need to provide your own translations for languages other than English.
## User Language Selection
Aikeedo provides two ways for users to change their preferred language:
### For Logged-in Users
1. Log into the Aikeedo app.
2. Click on your name in the account menu (bottom-left of the app dashboard).
3. Navigate to your profile page.
4. Look for the language selection option and choose your preferred language.
### For Website Visitors
The language selection process for website visitors may vary depending on the theme used. In the default theme:
1. Look for the language switcher in the website header (often in the top-right corner).
2. Click on the switcher (typically represented by a globe icon or current language code).
3. Select your preferred language from the dropdown menu.
The exact location and appearance of the language selector may differ based on your chosen theme. Some themes might place it in a different part of the header, footer, or even in a side menu.
## Best Practices for Localization
1. **Consistency**: Maintain consistent terminology across all translations.
2. **Context**: Consider the context in which the text appears to ensure accurate translations.
3. **Testing**: After translating, thoroughly test the interface in each language to catch any layout or functionality issues.
4. **Regular Updates**: Keep translations up-to-date with each new release of Aikeedo.
## Troubleshooting
If you encounter issues with localization:
* Ensure all `.po` files are properly formatted.
* Check that the `locale.json` file is correctly configured.
* Clear your browser cache and application cache after making changes.
* Verify that the correct language files are being loaded in the application settings.
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
# Prompt Templates
Source: https://docs.aikeedo.com/advanced/prompt-templates
Create dynamic AI prompts using Aikeedo template syntax with input tags, modifiers, conditionals, and loops for customizable user experiences.
Prompt templating enables dynamic prompts with customizable user inputs. This guide covers template syntax, tags, modifiers, conditionals, and best practices for creating interactive AI experiences.
## Understanding Prompt Templates
Prompt templates are pre-designed structures that include placeholders for user inputs. These templates allow you to create consistent and customizable prompts for various AI-powered tasks, such as content generation, language translation, or data analysis.
## Key Components
### Tags
Tags are the building blocks of prompt templates. They represent input elements that users can customize and are enclosed in curly braces.
```scss theme={null}
{ input_name }
```
### Attributes
Attributes modify the behavior of tags, allowing you to fine-tune how inputs are presented and processed. They are appended to tags using the pipe character (`|`).
```scss theme={null}
{ input_name | attribute1 | attribute2 }
```
## Creating Your First Prompt Template
Let's create a simple prompt template for an "Article Generator":
```scss theme={null}
Write an article about { topic | placeholder: Your chosen subject }.
Use the following draft content:
---
{ content | multiline | placeholder: Draft content }
---
Additional instructions:
- Include relevant statistics and consider diverse perspectives.
- Write it in { language } using a { tone } voice tone.
```
This template generates a form with inputs for the topic, draft content, language, and tone, allowing users to customize their article generation request.
## Available Attributes
Enhance your prompt templates with these powerful attributes:
Sets a custom label for the input
Example:
`{ input_name | label:Custom label }`
Creates a multiline text input
Example:`{ input_name | multiline }`
Defines the input type (currently supports `enum`)
Example:`{ input_name | type:enum }`
Specifies options for `enum` type inputs
Example:`{ input_name | type:enum | options:Option 1, Option 2, Option 3 }`
Makes an input optional
Example:`{ input_name | optional }`
Sets a custom placeholder text
Example:`{ input_name | placeholder:Custom placeholder }`
Provides additional information about the input
Example:`{ input_name | info:Custom info text }`
## Built-in Inputs
Aikeedo provides two convenient built-in inputs to streamline your prompt templates:
1. `language`: A dropdown list of supported languages.
2. `tone`: A dropdown list of supported voice tones.
Use these built-in inputs in your templates like this:
```scss theme={null}
{ language }
{ tone }
```
## Advanced Template Example
Let's create a more sophisticated prompt template for a "Comprehensive Article Generator":
```scss theme={null}
Create a detailed article on { topic | placeholder: Your chosen subject | info: Specify the main focus of your article }.
Target audience: { audience | type:enum | options:General, Beginners, Experts | info: Select your intended readership }
Article structure:
1. Introduction
2. { section_1 | label:Main Section 1 | placeholder:E.g., Historical background }
3. { section_2 | label:Main Section 2 | placeholder:E.g., Current trends }
4. { section_3 | label:Main Section 3 | placeholder:E.g., Future implications }
5. Conclusion
Key points to cover:
{ key_points | multiline | placeholder: List important points to address }
Writing style:
- Language: { language }
- Tone: { tone }
- Length: { word_count | placeholder:Approximate word count | info: Suggested range: 500-2000 words }
Additional requirements:
- Include at least { source_count | type:enum | options:2, 3, 5 | label:Number of sources } credible sources
- Incorporate relevant statistics and data visualizations if applicable
- Address potential counterarguments or alternative viewpoints
Extra notes:
{ extra_notes | multiline | optional | placeholder: Any additional instructions or context }
```
This advanced template demonstrates how to combine various attributes and input types to create a comprehensive and flexible prompt for generating high-quality articles.
## Best Practices
1. **Be specific**: Clearly define what you want the AI to do in your template.
2. **Use appropriate input types**: Choose the right input type (text, multiline, enum) for each piece of information you need.
3. **Provide context**: Use the `info` attribute to give users helpful information about each input.
4. **Balance flexibility and structure**: Offer enough customization options while maintaining a clear overall structure.
5. **Test your templates**: Experiment with different combinations of inputs to ensure your template produces the desired results.
## Conclusion
Prompt templates are a powerful tool for creating dynamic, customizable AI experiences. By mastering the use of tags, attributes, and built-in inputs, you can design sophisticated prompts that cater to a wide range of use cases and user needs.
# Secure URLs
Source: https://docs.aikeedo.com/advanced/secure-urls
Enable secure URL protection in Aikeedo to safeguard uploaded and AI-generated files using tokenized URLs and time-limited access.
## Introduction
Secure URLs protect user-uploaded and AI-generated files through tokenized, time-limited URLs. This guide covers enabling and managing this security feature.
## How It Works
When secure URLs are enabled:
* All files uploaded by your users are protected through tokenized URLs
* The app automatically generates secure URLs whenever files need to be accessed
* Files can only be accessed through valid tokenized URLs
* Direct file URLs without tokens will not work
Secure URLs are completely transparent to your users - they won't notice any difference in how they access files. The app automatically handles all security aspects behind the scenes.
## Managing Secure URLs
### Prerequisites
Before enabling secure URLs, ensure:
* You're using a supported cloud storage provider (like Digital Ocean Spaces)
* Your Aikeedo installation is version 2.10 or higher
* Your Cloud Storage plugin is version 1.2 or higher
Local storage does not support secure URLs. You must configure a cloud storage provider in your admin panel first.
### Enabling the Feature
1. Log in to your Aikeedo admin panel
2. Go to **Settings** > **File storage**
3. Under the Configuration section, ensure your cloud storage adapter is selected
4. Toggle the "Secure URLs" switch to enable the feature
After enabling, all new files uploaded by your users will automatically be protected. Files uploaded before enabling this feature will remain accessible through their original URLs.
## Security Considerations
### URL Access Control
* The app automatically generates new secure URLs whenever files are accessed
* Each secure URL contains a token that expires after 1 hour
* Users won't notice the URL expiration - new secure URLs are generated automatically when needed
* Users cannot bypass the security by sharing direct file URLs
Your users will have continuous access to their files. The 1-hour expiration only applies to individual secure URLs, not to the files themselves. New secure URLs are automatically generated when needed.
If you've enabled CDN in your cloud storage settings (like Digital Ocean Spaces CDN), ensure its edge caching time is set to 1 hour or less. Otherwise, the CDN might continue serving expired secure URLs to your users.
### Best Practices
1. Enable secure URLs before launching your service
2. Avoid disabling secure URLs once enabled
3. Regularly check your storage settings
4. Monitor your users' file access patterns
## Limitations
Important points to consider:
* Local storage cannot use secure URLs
* Some cloud storage providers may not support this feature
* Old URLs will stop working if you disable secure URLs after enabling them
* Once enabled, switching to a different cloud storage provider is not recommended as previously uploaded files will become inaccessible
If you're using Cloudflare R2, secure URLs will only work with the default S3 API endpoint (`.r2.cloudflarestorage.com`) and cannot be used with custom domains.
After enabling secure URLs, stick with your chosen cloud storage provider. Switching providers will break access to files uploaded with secure URLs enabled.
Verify secure URL support with your chosen cloud storage provider before enabling the feature.
## Troubleshooting
If your users report issues accessing files:
1. Check if your cloud storage provider is functioning correctly
2. Verify your CDN settings if enabled
3. Ensure the secure URLs feature is properly enabled
4. Check if the reported files were uploaded after enabling secure URLs
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
# Text Streaming
Source: https://docs.aikeedo.com/advanced/text-streaming
Configure and troubleshoot real-time text streaming for AI responses in Aikeedo including server configuration and hosting compatibility.
## Introduction
Text streaming displays AI responses in real-time as they generate, creating a more engaging user experience. This guide covers functionality, compatibility, and troubleshooting.
## How It Works
Aikeedo's text streaming functionality:
* Works out of the box on most web servers
* Supports shared hosting environments
* Requires minimal configuration in most cases
Text streaming is enabled by default and should work immediately after installation. Most users won't need to make any configuration changes.
## Server Configuration
While Aikeedo works with default server settings in most cases, some servers might need minor adjustments:
### PHP Settings
If streaming isn't working, check these settings in your `php.ini` file:
```ini theme={null}
output_buffering = Off
zlib.output_compression = Off
```
These settings prevent PHP from buffering the output, allowing for immediate transmission of text chunks to the client.
If you're using shared hosting and can't modify php.ini, contact your hosting provider. Many providers can adjust these settings for you if needed.
### Web Server Settings
#### For Nginx Servers
Aikeedo automatically sets the required headers for text streaming. However, if your Nginx is configured as a proxy server, you might need these settings:
```nginx theme={null}
proxy_buffering off;
fastcgi_buffering off;
```
These settings are typically added in the `nginx.conf` file or within the specific server block for your Aikeedo installation.
Most Nginx installations work without any changes, thanks to the `X-Accel-Buffering: no` header Aikeedo sets for streaming responses.
#### For Apache Servers
Apache servers typically work without any changes. If you experience issues, try disabling the gzip module by adding the following to your `/public/.htaccess` file:
```apache theme={null}
RewriteRule ^(.*)$ $1 [NS,E=no-gzip:1,E=dont-vary:1]
```
## Common Issues
### Buffering Issues
If you experience delayed or chunked responses, or responses appear all at once instead of streaming:
1. Verify all buffering-related settings are properly configured
2. Clear your server's cache
3. Restart your web server after making configuration changes
4. Clear your browser cache
5. Try a different browser
6. Check if your hosting provider is using any aggressive caching
### Caching Mechanisms
Various caching layers can affect text streaming:
* Server-level caching
* PHP opcode caching
* Reverse proxy caching
* Browser caching
If responses are delayed, try disabling any caching plugins or features your hosting provider might have enabled.
### Known Hosting Limitations
Some hosting providers may have restrictions that affect text streaming. If you experience issues, contact your hosting provider's support team for assistance.
* **Cloudways**: Text streaming is not supported due to their server stack configuration
* **Shared Hosting**: May have limited configuration options
* **Managed Hosting**: Check with your provider about configuring streaming settings
## Troubleshooting Checklist
Use this checklist to diagnose streaming issues:
* Verify PHP configuration settings
* Check web server buffering settings
* Confirm no interfering caching mechanisms
* Test with different browsers
* Monitor server logs for errors
* Verify hosting provider compatibility
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
# Users & Workspaces
Source: https://docs.aikeedo.com/advanced/users-workspaces
Understand user types, workspace management, roles, invitations, and multi-tenant architecture in Aikeedo for organizational access control.
Aikeedo's user and workspace system provides flexible access control for individual users and organizations. This guide covers user types, workspace management, and collaboration features.
## User Types
Aikeedo has two main types of users:
1. **Standard Users**: These are the end-users of your website who interact with the AI features and content.
2. **Admin Users**: Administrators have enhanced permissions and can access the admin panel to manage the application.
### Admin Users
Admin users have all the capabilities of standard users, plus additional privileges:
* Access to the admin panel
* Control over application settings
* Ability to manage and analyze user and application data
* Oversight of system-wide data management and analytics
The initial admin user is created during the installation process. This user becomes the app owner.
Admin users can:
* Create new admin accounts
* Manage existing admin accounts (modify permissions, deactivate, or delete)
* Elevate standard user accounts to admin status
By default, it's not possible to sign up directly as an admin user. This is a security measure to protect your application.
## Workspaces
Workspaces are a core concept in Aikeedo, allowing for organized collaboration and resource management.
Key features of workspaces:
* Users can create and own multiple workspaces
* Each workspace can have multiple users
* Users can be part of multiple workspaces
* Every workspace has a single owner
### Workspace Owner Capabilities
Workspace owners have full control over their workspaces, including the ability to:
* Create new workspaces
* Delete existing workspaces
* Invite new users to the workspace
* Remove users from the workspace
* Change the workspace plan
### Default Workspace
When a user signs up for Aikeedo, they are automatically provided with a default workspace. This initial workspace is owned by the new user and serves as their personal starting point within the platform. By default, this workspace is typically named "Personal," reflecting its individual nature. However, to accommodate user preferences and organizational needs, the workspace owner has the flexibility to rename this default space as they see fit. This feature allows users to personalize their Aikeedo experience from the very beginning, tailoring their workspace to align with their specific projects or branding requirements.
## User-Workspace Relationship
The relationship between users and workspaces is many-to-many:
* A single user can create and own multiple workspaces
* A single user can be a member of multiple workspaces (including those owned by others)
* A workspace can have multiple user members
This structure allows for flexible collaboration and resource sharing across teams or projects, while also enabling users to manage multiple distinct workspaces for different purposes.
## Best Practices
To make the most of Aikeedo's user and workspace system:
1. **Carefully assign admin roles**: Only give admin access to trusted individuals who need to manage the application.
2. **Educate users on workspace features**: Help your team understand how to effectively use workspaces for collaboration and organization.
## Related Guides
* [Authentication Settings](/authentication/accounts-settings)
* [Billing Overview](/billing/overview)
* [Initial Setup](/setup/initial-setup)
# Account Settings
Source: https://docs.aikeedo.com/authentication/accounts-settings
Configure user registration, sign-in policies, and email verification requirements in Aikeedo to balance accessibility and security.
Account settings control user registration, authentication, and email verification policies for your Aikeedo platform.
## General Settings
### User Accounts
This setting controls whether users can create and access accounts on your platform.
* When enabled, users can sign in through the sign-in form and API.
* If disabled, only admin accounts will be able to sign in.
Disabling user accounts will prevent regular users from accessing your platform. Use this option with caution.
### Signup Form
This option determines whether new users can register for accounts on your platform.
* When enabled, users can sign up through the registration form and API.
* If disabled, new user registrations will be prevented, but existing users can still sign in.
You might want to disable the signup form temporarily for maintenance or to control user influx.
### Phone Number Collection
Configure whether to collect phone numbers during user registration.
**Available Options:**
* **None**: Phone number collection is disabled for user registration
* **Optional**: Users can optionally provide their phone number
* **Mandatory**: Phone number is required for registration
**Phone Number Collection Purpose:**
When phone number collection is enabled (Optional or Mandatory), you can provide a purpose statement that will be displayed to users during registration.
* **Purpose**: Explain why you need to collect phone numbers
* **Display**: This message will be shown to end users during registration
* **Optional**: Leave blank to hide the explanation
* **Recommended**: Explain the purpose to build trust and compliance
This setting applies to new registrations only and does not affect existing user accounts.
### Disposable Email Domains
Control whether users can register with disposable email addresses.
* **Enabled**: Users can sign up with disposable email domains
* **Disabled**: Registration with disposable email domains is blocked
**Default Protection:**
Aikeedo blocks 2500+ disposable email domains by default, and this list improves with each update to provide better protection against spam registrations.
**Adding Additional Blocked Domains:**
If you need to block additional disposable email domains, you can add them to the `/data/domains.txt` file:
1. Navigate to your Aikeedo installation directory
2. Open or create the `/data/domains.txt` file
3. Add each domain on a new line
4. Save the file
These domains will be added to the default block list.
This setting applies to new registrations only and does not affect existing user accounts.
### Owned Workspace Cap
Limit the number of workspaces a user can own.
* Enter a number to set the maximum limit
* Leave blank or set to "Unlimited" for no limit
* This helps control resource usage and prevents workspace spam
### Account Deletion
Allow users to permanently delete their own accounts.
* **Enabled**: Users see a **Danger zone** section on their account page where they can delete their account
* **Disabled**: Only admins can delete user accounts from the admin panel
When a user deletes their account:
* They must confirm the action and enter their password (if they have one)
* Subscriptions for all owned workspaces are cancelled
* All owned workspaces and their data are permanently deleted
* All personal data associated with the account is permanently deleted
Account deletion cannot be undone. Admin accounts cannot delete themselves through self-service.
## Email Verification Policy
The email verification policy determines how strictly your platform enforces email verification for new and existing users. You can choose from three levels of verification:
1. **None**: No email verification is required.
* Users can access all features without verifying their email addresses.
* This option provides the most frictionless user experience but offers the least security.
2. **Relaxed**: Users can sign in, but are encouraged to verify their email.
* Users can access the platform without email verification.
* An alert will be displayed on the dashboard indicating that the email is unverified.
* This setting balances user convenience with a reminder to complete verification.
3. **Strict**: Email verification is mandatory before full platform access.
* Users can sign in but cannot access any pages except account-related pages until they verify their email address.
* This provides the highest level of security but may impact user onboarding.
To enable email verification (for Relaxed and Strict policies), ensure you've configured your [mailer transport](/email/mailer) in the Email settings.
The email verification policy does not apply to admin portal access. Admin accounts are managed separately for security reasons.
### OAuth Email Status
Control how email verification is handled for OAuth (social login) users.
**Available Options:**
* **Ignore**: Email verification status from the identity provider will be ignored
* **Auto**: Email will be marked as verified if verified by the identity provider
* **Verified**: Email will be marked as verified when signing in through an identity provider even if it is not verified by the identity provider
Each option offers different balances between user convenience and security, allowing you to tailor the policy to your platform's needs.
## Best Practices
1. **Regular Review**: Periodically review your account settings to ensure they align with your current security needs and user experience goals.
2. **User Communication**: If you make significant changes to these settings, consider notifying your users to avoid confusion.
3. **Testing**: After changing settings, test the user registration and login processes to ensure everything works as expected.
4. **Compliance**: Ensure your account settings comply with relevant data protection regulations in your jurisdiction.
## Related Guides
* [Identity Providers](/authentication/identity-providers/google) - Set up third-party authentication options
* [CAPTCHA](/authentication/captcha) - Add an extra layer of security to your forms
* [Email Configuration](/email/mailer) - Set up your email system for notifications and verifications
By carefully configuring these account settings, you can create a secure and user-friendly environment on your Aikeedo platform, tailored to your specific needs and user base.
# CAPTCHA Protection
Source: https://docs.aikeedo.com/authentication/captcha
Protect your Aikeedo application from spam and abuse with CAPTCHA integration
CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) is a crucial tool for protecting your Aikeedo application from spam and automated abuse. This guide focuses on setting up and configuring Google reCAPTCHA v2 Invisible, which is currently the supported CAPTCHA solution for Aikeedo.
## Current CAPTCHA Support
At present, Aikeedo supports Google reCAPTCHA v2 Invisible. This powerful and user-friendly CAPTCHA solution offers robust protection without disrupting the user experience.
While only Google reCAPTCHA is currently supported, Aikeedo may introduce additional CAPTCHA options in future updates. Stay tuned to our [changelog](https://aikeedo.com/changelog/) for the latest feature additions.
## What is Google reCAPTCHA?
Google reCAPTCHA is a free service that helps protect websites from spam and abuse. reCAPTCHA v2 Invisible uses advanced risk analysis techniques to distinguish between humans and bots without requiring users to solve puzzles or click checkboxes.
## Benefits of Using reCAPTCHA
* **Enhanced Security**: Safeguard your forms and user interactions from spam bots and malicious attacks.
* **Flexible Security Settings**: Adjust protection levels based on your specific requirements and risk tolerance.
## Setting Up Google reCAPTCHA
To integrate Google reCAPTCHA with your Aikeedo application:
1. **Register for reCAPTCHA**:
* Go to the [Google reCAPTCHA Admin Console](https://www.google.com/recaptcha/admin).
* Log in with your Google account.
* Click the "+" button to add a new site.
2. **Configure reCAPTCHA settings**:
* Enter a label for your site (e.g., your domain name) in the "Label" field.
* For "reCAPTCHA type", select "Challenge (v2)".
* Under the Challenge (v2) option, choose "Invisible reCAPTCHA badge".
* In the "Domains" section, add your Aikeedo application's domain(s).
* Under "Google Cloud Platform", you may see a project name if you've used Google Cloud before. If not, a new project will be created for you.
Aikeedo is designed to work with the "Invisible reCAPTCHA badge" option. This provides security without disrupting the user experience.
3. **Complete the registration**:
* Review your settings to ensure everything is correct.
* Click the "Submit" button at the bottom of the page.
4. **Retrieve your Site Key and Secret Key**:
* After submitting, you'll be provided with a Site Key and a Secret Key.
* Keep these keys secure, as you'll need them to configure reCAPTCHA in Aikeedo.
Never share your Secret Key publicly or include it in client-side code. Keep it confidential to maintain the security of your CAPTCHA implementation.
## Configuring CAPTCHA in Aikeedo
Once you have your reCAPTCHA keys, enable and configure it in Aikeedo:
1. Access the Aikeedo admin panel.
2. Navigate to "Settings" > "User accounts" > "CAPTCHA".
3. Toggle on "Protect with Google reCAPTCHA".
4. Input your Site Key in the "Site key" field.
5. Enter your Secret Key in the "Secret key" field.
6. Click "Save changes" to apply the configuration.
Never share your Secret Key publicly or include it in client-side code. Keep it confidential to maintain the security of your CAPTCHA implementation.
## Testing Your CAPTCHA Integration
After setting up CAPTCHA, it's crucial to test its functionality:
1. Open a new incognito/private browsing window or use a different browser.
2. Navigate to your Aikeedo platform's public-facing pages.
3. Attempt actions that should be protected, such as user registration or login.
4. Confirm that the reCAPTCHA challenge activates when appropriate.
It's important to test CAPTCHA integration without logging out of your admin account to avoid potential login issues. Using a separate browsing session ensures you can always access the admin panel if needed.
## Troubleshooting
If you encounter issues with your CAPTCHA integration, consider these steps:
* Verify that your Site Key and Secret Key are correctly entered in the Aikeedo settings.
* Ensure your domain is properly listed in the Google reCAPTCHA admin console.
* Check your browser console for any JavaScript errors related to reCAPTCHA.
* Confirm that your server can communicate with Google's reCAPTCHA API servers.
## Additional Resources
* [Google reCAPTCHA Documentation](https://developers.google.com/recaptcha/docs/invisible)
* [reCAPTCHA FAQ](https://developers.google.com/recaptcha/docs/faq)
# Facebook Identity Provider
Source: https://docs.aikeedo.com/authentication/identity-providers/facebook
Seamlessly integrate Facebook OAuth 2.0 authentication into your Aikeedo application, allowing users to log in with their Facebook accounts. This guide walks you through the setup process, from creating a Facebook App to configuring Aikeedo for a smooth "Login with Facebook" experience.
## Overview
Integrating Facebook as an identity provider offers your users a convenient and secure way to access your Aikeedo application. This feature leverages Facebook's OAuth 2.0 protocol, ensuring a streamlined authentication process while maintaining high security standards.
Before you begin, ensure you have admin access to your Aikeedo application and a Facebook Developer account for setting up the OAuth integration.
## Step-by-Step Integration Guide
### 1. Create a Facebook App
1. Visit the [Facebook for Developers](https://developers.facebook.com/) website.
2. Click on "My Apps" in the top-right corner.
3. Select "Create App" and choose the app type that best fits your needs (e.g., "Consumer" or "Business").
4. Follow the prompts to set up your app, providing the necessary information.
### 2. Configure Facebook Login
1. In your app's dashboard, navigate to the "Add a Product" section.
2. Find "Facebook Login" and click "Set Up".
3. Choose "Web" as the platform for your app.
4. Enter your website's URL in the "Site URL" field.
5. Click "Save" and then "Continue".
### 3. Set Up OAuth Settings
1. In the left sidebar, click on "Facebook Login" > "Settings".
2. In the "Valid OAuth Redirect URIs" field, enter the callback URL provided by Aikeedo.
Look for a click-to-copy feature in Aikeedo for easy access to the correct callback URL.
The callback URL is automatically generated based on your Site Domain and SSL settings. To configure these, visit the [Website Essentials](/website-basics/essentials) page in your Aikeedo admin panel.
3. Scroll down and click "Save Changes".
### 4. Obtain App ID and App Secret
1. In the left sidebar, click on "Settings" > "Basic".
2. Here you'll find your "App ID" and "App Secret". You'll need these for Aikeedo configuration.
Keep your App Secret confidential. Never share it publicly or include it in client-side code.
### 5. Configure Aikeedo
1. Log into your Aikeedo admin panel.
2. Navigate to **Settings > Identity providers > Facebook**.
3. Toggle the switch to enable "Login with Facebook".
4. Enter the "App ID" and "App Secret" obtained from your Facebook App.
5. Click "Save changes" to apply your configuration.
## Testing Your Integration
After completing the setup, it's crucial to test the integration to ensure a smooth user experience:
1. Log out of your Aikeedo application.
2. On the login page, look for the "Login with Facebook" option.
3. Click the option and proceed through the Facebook authentication flow.
4. Verify that you can successfully log in and access your Aikeedo account.
If you encounter any issues during testing, double-check your configuration settings in both the Facebook Developer Console and Aikeedo admin panel.
## Video Tutorial
For a visual guide through this process, check out our step-by-step video tutorial:
## Troubleshooting
If you experience any difficulties with the Facebook identity provider integration, consider the following:
* Ensure the callback URL in Facebook Developer Console matches exactly with the one provided by Aikeedo.
* Verify that you've configured the Facebook Login product correctly in your Facebook App.
* Check that your app's privacy policy and terms of service URLs are set correctly in the Facebook App settings.
## Next Steps
Now that you've successfully integrated Facebook as an identity provider, consider exploring other authentication options to provide your users with more choices:
* [Google Identity Provider](/authentication/identity-providers/google)
* [LinkedIn Identity Provider](/authentication/identity-providers/linkedin)
* [GitHub Identity Provider](/authentication/identity-providers/github)
By offering multiple login options, you can enhance user experience and potentially increase user adoption of your Aikeedo application.
# GitHub Identity Provider
Source: https://docs.aikeedo.com/authentication/identity-providers/github
Seamlessly integrate GitHub OAuth 2.0 authentication into your Aikeedo application, allowing users to log in with their GitHub accounts. This guide walks you through the setup process, from creating a GitHub OAuth App to configuring Aikeedo for a smooth "Login with GitHub" experience.
## Overview
Integrating GitHub as an identity provider offers your users a convenient and secure way to access your Aikeedo application. This feature leverages GitHub's OAuth 2.0 protocol, ensuring a streamlined authentication process while maintaining high security standards.
Before you begin, ensure you have admin access to your Aikeedo application and a GitHub account for setting up the OAuth integration.
## Step-by-Step Integration Guide
### 1. Create a GitHub OAuth App
1. Visit the [GitHub Developer Settings](https://github.com/settings/developers).
2. Click on "OAuth Apps" in the left sidebar, then select "New OAuth App".
3. Fill out the required information:
* Application name: Choose a name for your app
* Homepage URL: Enter your Aikeedo application's URL
* Authorization callback URL: Enter the callback URL provided by Aikeedo
Look for a click-to-copy feature in Aikeedo for easy access to the correct callback URL.
The callback URL is automatically generated based on your Site Domain and SSL settings. To configure these, visit the [Website Essentials](/website-basics/essentials) page in your Aikeedo admin panel.
4. Click "Register application" to create your OAuth App.
### 2. Obtain OAuth Credentials
1. After registering, you'll be taken to your app's settings page.
2. Here, you'll find your "Client ID".
3. Click "Generate a new client secret" to create your Client Secret.
4. Make note of both the Client ID and Client Secret - you'll need these for Aikeedo configuration.
Keep your Client Secret confidential. Never share it publicly or include it in client-side code.
### 3. Configure Aikeedo
1. Log into your Aikeedo admin panel.
2. Navigate to **Settings > Identity providers > GitHub**.
3. Toggle the switch to enable "Login with GitHub".
4. Enter the "Client ID" and "Client Secret" obtained from your GitHub OAuth App.
5. The Valid OAuth Redirect URI is automatically populated based on your [Website Essentials](/website-basics/essentials) settings. Ensure this matches the Authorization callback URL you entered in GitHub.
6. Click "Save changes" to apply your configuration.
## Testing Your Integration
After completing the setup, it's crucial to test the integration to ensure a smooth user experience:
1. Log out of your Aikeedo application.
2. On the login page, look for the "Login with GitHub" option.
3. Click the option and proceed through the GitHub authentication flow.
4. Verify that you can successfully log in and access your Aikeedo account.
If you encounter any issues during testing, double-check your configuration settings in both the GitHub Developer settings and Aikeedo admin panel.
## Video Tutorial
For a visual guide through this process, check out our step-by-step video tutorial:
## Troubleshooting
If you experience any difficulties with the GitHub identity provider integration, consider the following:
* Ensure the Authorization callback URL in GitHub Developer settings matches exactly with the one provided by Aikeedo.
* Verify that you've granted the necessary permissions to your GitHub OAuth App.
* Check that your app's privacy policy and terms of service URLs are set correctly in the GitHub App settings, if required.
## Next Steps
Now that you've successfully integrated GitHub as an identity provider, consider exploring other authentication options to provide your users with more choices:
* [Google Identity Provider](/authentication/identity-providers/google)
* [Facebook Identity Provider](/authentication/identity-providers/facebook)
* [LinkedIn Identity Provider](/authentication/identity-providers/linkedin)
By offering multiple login options, you can enhance user experience and potentially increase user adoption of your Aikeedo application.
# Google Identity Provider
Source: https://docs.aikeedo.com/authentication/identity-providers/google
Seamlessly integrate Google OAuth 2.0 authentication into your Aikeedo application, allowing users to log in with their Google accounts. This guide walks you through the setup process, from creating a Google API project to configuring Aikeedo for a smooth "Login with Google" experience.
## Overview
Integrating Google as an identity provider offers your users a convenient and secure way to access your Aikeedo application. This feature leverages Google's OAuth 2.0 protocol, ensuring a streamlined authentication process while maintaining high security standards.
Before you begin, ensure you have admin access to your Aikeedo application and a Google account for setting up the OAuth integration.
## Step-by-Step Integration Guide
### 1. Create a Google API Project
1. Navigate to the [Google Cloud Console](https://console.cloud.google.com/).
2. Click on the project dropdown at the top of the page.
3. Select "New Project" and provide a name for your project.
4. Click "Create" to generate your new Google API project.
### 2. Set Up the OAuth Consent Screen
1. In the Google Cloud Console sidebar, go to "APIs & Services" > "OAuth consent screen".
2. Choose the appropriate user type for your application (Internal or External).
3. Fill in the required details:
* App name
* User support email
* Developer contact information
4. Click "Save and Continue" to proceed.
### 3. Generate OAuth 2.0 Credentials
1. In the sidebar, navigate to "APIs & Services" > "Credentials".
2. Click "Create Credentials" and select "OAuth client ID".
3. Choose "Web application" as the application type.
4. In the "Authorized redirect URIs" section, enter the callback URL provided by Aikeedo.
Look for a click-to-copy feature in Aikeedo for easy access to the correct callback URL.
The callback URL is automatically generated based on your Site Domain and SSL settings. For more information, visit the [Website Essentials](/website-basics/essentials#site-domain) page.
5. Click "Create" to generate your OAuth 2.0 client ID and secret.
6. Make note of the generated "Client ID" and "Client Secret" - you'll need these for Aikeedo configuration.
### 4. Configure Aikeedo
1. Log into your Aikeedo admin panel.
2. Navigate to **Settings > Identity providers > Google**.
3. Toggle the switch to enable "Login with Google".
4. Enter the "Client ID" and "Client Secret" obtained from your Google API project.
5. Click "Save changes" to apply your configuration.
## Testing Your Integration
After completing the setup, it's crucial to test the integration to ensure a smooth user experience:
1. Log out of your Aikeedo application.
2. On the login page, look for the "Login with Google" option.
3. Click the option and proceed through the Google authentication flow.
4. Verify that you can successfully log in and access your Aikeedo account.
If you encounter any issues during testing, double-check your configuration settings in both the Google Cloud Console and Aikeedo admin panel.
## Video Tutorial
For a visual guide through this process, check out our step-by-step video tutorial:
## Troubleshooting
If you experience any difficulties with the Google identity provider integration, consider the following:
* Ensure the callback URL in Google Cloud Console matches exactly with the one provided by Aikeedo.
* Verify that you've enabled the necessary Google APIs for your project.
* Check that your OAuth consent screen is properly configured and approved (if required).
## Next Steps
Now that you've successfully integrated Google as an identity provider, consider exploring other authentication options to provide your users with more choices:
* [Facebook Identity Provider](/authentication/identity-providers/facebook)
* [LinkedIn Identity Provider](/authentication/identity-providers/linkedin)
* [GitHub Identity Provider](/authentication/identity-providers/github)
By offering multiple login options, you can enhance user experience and potentially increase user adoption of your Aikeedo application.
# LinkedIn Identity Provider
Source: https://docs.aikeedo.com/authentication/identity-providers/linkedin
Seamlessly integrate LinkedIn OAuth 2.0 authentication into your Aikeedo application, allowing users to log in with their LinkedIn accounts. This guide walks you through the setup process, from creating a LinkedIn App to configuring Aikeedo for a smooth "Login with LinkedIn" experience.
## Overview
Integrating LinkedIn as an identity provider offers your users a convenient and secure way to access your Aikeedo application. This feature leverages LinkedIn's OAuth 2.0 protocol, ensuring a streamlined authentication process while maintaining high security standards.
Before you begin, ensure you have admin access to your Aikeedo application and a LinkedIn Developer account for setting up the OAuth integration.
## Step-by-Step Integration Guide
### 1. Create a LinkedIn App
1. Visit the [LinkedIn Developer Portal](https://www.linkedin.com/developers/).
2. Click on "My Apps" in the top-right corner.
3. Select "Create App" and provide the necessary information:
* App name
* LinkedIn Page (company page associated with the app)
* App logo
4. Click "Create app" to proceed.
### 2. Configure OAuth 2.0 Settings
1. In your app's dashboard, navigate to the "Auth" tab.
2. Under "OAuth 2.0 settings", you'll find your Client ID and Client Secret. Make note of these as you'll need them later.
3. In the "Authorized redirect URLs" section, enter the callback URL provided by Aikeedo.
Look for a click-to-copy feature in Aikeedo for easy access to the correct callback URL.
The callback URL is automatically generated based on your Site Domain and SSL settings. To configure these, visit the [Website Essentials](/website-basics/essentials) page in your Aikeedo admin panel.
4. Click "Update" to save your changes.
### 3. Configure App Permissions
1. In the "Products" tab, request access to the necessary LinkedIn APIs (e.g., "Sign In with LinkedIn").
2. Follow the prompts to verify your app and gain access to the required permissions.
### 4. Configure Aikeedo
1. Log into your Aikeedo admin panel.
2. Navigate to **Settings > Identity providers > LinkedIn**.
3. Toggle the switch to enable "Login with LinkedIn".
4. Enter the "Client ID" and "Client Secret" obtained from your LinkedIn App.
5. Click "Save changes" to apply your configuration.
## Testing Your Integration
After completing the setup, it's crucial to test the integration to ensure a smooth user experience:
1. Log out of your Aikeedo application.
2. On the login page, look for the "Login with LinkedIn" option.
3. Click the option and proceed through the LinkedIn authentication flow.
4. Verify that you can successfully log in and access your Aikeedo account.
If you encounter any issues during testing, double-check your configuration settings in both the LinkedIn Developer Console and Aikeedo admin panel.
## Video Tutorial
For a visual guide through this process, check out our step-by-step video tutorial:
## Troubleshooting
If you experience any difficulties with the LinkedIn identity provider integration, consider the following:
* Ensure the callback URL in LinkedIn Developer Console matches exactly with the one provided by Aikeedo.
* Verify that you've requested and been granted access to the necessary LinkedIn APIs.
* Check that your app's privacy policy and terms of service URLs are set correctly in the LinkedIn App settings.
## Next Steps
Now that you've successfully integrated LinkedIn as an identity provider, consider exploring other authentication options to provide your users with more choices:
* [Google Identity Provider](/authentication/identity-providers/google)
* [Facebook Identity Provider](/authentication/identity-providers/facebook)
* [GitHub Identity Provider](/authentication/identity-providers/github)
By offering multiple login options, you can enhance user experience and potentially increase user adoption of your Aikeedo application.
# Billing Overview
Source: https://docs.aikeedo.com/billing/overview
Configure billing settings in Aikeedo including default currency, trial periods, sign-up plans, and fallback subscriptions for user onboarding.
## General Settings
### Billing Address
Control whether billing address information is required during checkout.
* **Enabled**: Billing address will be required at checkout
* **Disabled**: Billing address is optional
Address information is required by payment gateways in some countries for compliance and fraud prevention.
### Credit Overuse Allowance
Manage how overused credits are handled when users exceed their plan limits.
* **Enabled**: Overused credits are tracked as workspace debt and automatically deducted from future subscription renewals or credit purchases
* **Disabled**: Overused credits become lost revenue that cannot be recovered
This feature helps recover revenue from overused credits while still maintaining usage limits. Workspaces with negative balance are still blocked from new operations until debt is covered.
### Charge for Automatic Title Generation
Control whether automatic title generation incurs a cost.
* **Enabled**: Title generation incurs a cost and is charged to the workspace
* **Disabled**: Title generation is provided free of charge
### Charge for Dictation
Control whether dictation features incur a cost.
* **Enabled**: Dictation incurs a cost and is charged to the workspace
* **Disabled**: Dictation is provided free of charge
### Default Currency
Choose the default currency for your billing system. This setting affects how prices are displayed and transactions are processed throughout your Aikeedo platform.
While it's important to choose a currency supported by your payment gateway, Aikeedo offers flexibility in currency handling. Each payment gateway provides a currency selector with supported currencies. If a selected currency isn't directly supported, Aikeedo can convert it to a supported currency during checkout, provided a currency rate provider is set up.
If the currency option is not set or is set to "Inherit" for payment gateways, the default currency will be used. Ensure you have a currency rate provider configured if you plan to use currencies not directly supported by your payment gateway.
### Currency Rate Provider
Select a provider for currency exchange rates. Options include:
* **None**: No automatic currency conversion.
* **CurrencyAPI**: Uses the CurrencyAPI service for up-to-date exchange rates.
Additional currency providers can be added through plugins, expanding your options for managing multi-currency transactions.
### Detailed Pricing Page URL
Configure where the **Detailed pricing table** button on the in-app Plans page links.
* Use `/#pricing` to point to the built-in landing page pricing section
* Use a full URL (for example, `https://yoursite.com/pricing`) when you use an external marketing site
* Leave empty to hide the button on the Plans page
If you disable the built-in landing page and host pricing on WordPress, Webflow, or another external site, set this URL so the Plans page button does not link to a broken anchor. See [Landing Page Customization](/website-basics/landing-page).
### Credits per Currency
Set how many credits equal one unit of your default currency. This setting is shared across billing modes.
* In **credit metering** mode: converts currency amounts to credits when users purchase add-on credits at checkout
* In **session-based usage** mode: converts add-on credit balances to currency for display in the app
* Enter the number of credits users receive per unit of your default currency
* Example: 100 credits per \$1.00 USD
In session-based usage mode, this field appears under **Usage mode**. In credit metering mode, it appears under **Custom Credit Purchases** when add-on purchases are enabled.
## Trial Configuration
### Trial Period Days
Set the duration of the trial period for new users.
* Enter the number of days for the trial period.
* Set to 0 to disable the trial feature.
Each user is eligible for a trial only once across any paid plan.
### Trial Without Payment
Toggle this option to allow users to start a trial without providing payment information upfront.
* When enabled, users can upgrade to any paid plan during the trial without immediately providing payment details.
* After the trial ends, a payment method will be required to continue the subscription.
## Default & Fallback Plans
### Sign Up Plan
Select the plan to which new users will be automatically subscribed upon registration.
* Choose "None" to disable automatic subscription, requiring users to select a plan themselves.
* Only monthly or yearly recurring plans can be set as the Sign-Up plan.
New users are automatically subscribed to the Sign Up plan, regardless of the trial option. If a trial period is set, users will be downgraded to the Fallback plan after the trial ends. Without a trial, users continue on the Sign Up plan.
If selecting a paid plan as the Sign Up plan, it's crucial to enable the trial period. Otherwise, new users will have immediate access to paid features without payment, which could lead to potential revenue loss.
### Fallback Plan
Define the plan users will be automatically moved to if their current subscription expires or fails to renew.
* Choose "None" to disable automatic downgrading, requiring users to manually select a new plan.
* Only monthly or yearly recurring plans can be set as the Fallback plan.
Ensure you have created appropriate pricing plans before configuring the Sign-Up and Fallback plans to provide a smooth user experience.
## Usage Mode
Choose how usage limits are presented and enforced site-wide at **Settings > Billing > Usage mode**. Credits remain the internal billing unit in both modes.
### Credit Metering (default)
The default mode. Users see credit balances throughout the app.
* Monthly plan credits are the only usage pool
* No session windows or pacing
* Usage logs remain visible
### Session-Based Usage
An alternative that hides credit balances and paces usage through configurable session windows for a smoother, "limitless" feel — this is not unlimited usage.
* Users see session usage as a percentage and when the current session resets
* Credit balances are hidden app-wide; add-on balances display as currency
* A dedicated usage page is available at `/app/billing/usage`
* Usage logs are hidden and redirect to the dashboard
* When the session cap is reached, a limit banner appears in chat with a **Buy usage credits** call to action
#### Session Duration
Set how long each usage session lasts (1–24 hours). Each workspace session starts on first billable usage and resets after the configured duration.
The session cap is calculated from the plan's monthly credits and session duration:
```
floor(monthly_credits × session_hours / (30 × 24))
```
Plans with unlimited monthly credits skip the session cap.
#### How Limits Are Enforced
1. Monthly plan credits are checked first
2. If credits remain, usage is allowed and counts toward the session cap
3. When the session cap is reached, add-on credits allow continued usage
4. If no add-on credits are available, new operations are blocked until the session resets
For add-on credit behavior in session mode, see [Plans, Snapshots & Subscriptions](/billing/plans-snapshots-subscriptions#add-on-credits).
#### BYOK in Session Mode
Workspaces using BYOK (Bring Your Own Key) for OpenAI or Anthropic skip session gates when usage is zero-cost for those providers. Other models still consume credits and count toward the session cap. See [BYOK](/advanced/byok).
## Custom Credit Purchases
### Enable Custom Credit Purchases
Allow users to purchase additional credits beyond their subscription plan.
* **Enabled**: Users can purchase additional credits with custom amounts
* **Disabled**: Users can only use credits included in their subscription plan
### Credits per Currency
When custom credit purchases are enabled in **credit metering** mode, set the exchange rate here. See [Credits per Currency](#credits-per-currency) under General Settings for details.
### Minimum Purchase Amount
Set the minimum amount users must spend when purchasing credits.
* Enter the minimum purchase amount in your default currency
* Example: \$10.00 USD minimum purchase
### Maximum Purchase Amount
Set the maximum amount users can spend in a single credit purchase.
* Enter the maximum purchase amount in your default currency
* Example: \$15,000.00 USD maximum purchase
These limits help control credit purchase volumes and prevent potential abuse while providing flexibility for high-volume users.
## Related Guides
* [Unified Credit System](/billing/unified-credit-system) - Understand credit management
* [Plans, Snapshots & Subscriptions](/billing/plans-snapshots-subscriptions) - Create and manage plans
* [Stripe Integration](/integrations/stripe) - Configure Stripe payments
* [PayPal Integration](/integrations/paypal) - Configure PayPal payments
Test your billing configuration thoroughly with test accounts before launching to ensure a smooth user experience.
# Plans, Snapshots, and Subscriptions
Source: https://docs.aikeedo.com/billing/plans-snapshots-subscriptions
Learn how Aikeedo manages subscription plans, plan snapshots for version control, and workspace subscriptions for billing and access control.
## Introduction
Aikeedo's billing system manages user access and resource allocation through plans, snapshots, and subscriptions. This guide explains how these components work together.
## Key Concepts
Before diving into the details, let's familiarize ourselves with some key terms:
* **Workspace**: A collaborative environment where users can access Aikeedo's features and resources.
* **Plan**: A predefined set of features, tools, and credit allocations offered to users.
* **Subscription**: An agreement that grants a workspace access to a specific plan for a set duration.
* **Snapshot**: A frozen copy of a plan's details at the time a subscription is created.
* **Credits**: The currency used within Aikeedo to access various features and resources.
## Workspaces and Subscriptions
Subscriptions are tied to workspaces, not individual users. This allows for flexible team collaboration and resource sharing.
Here's how workspaces and subscriptions interact:
* Each user can own multiple workspaces.
* Each workspace can have its own subscription, independent of other workspaces.
* Multiple members can be added to a workspace, sharing the same set of credits and features.
* Billing details are managed separately for each workspace.
This structure allows for great flexibility in how teams and individuals use Aikeedo, catering to various organizational structures and project needs.
## Plan Types
Aikeedo offers several plan types to suit different user needs:
### Monthly Plans
* Billed automatically every month.
* Provides monthly recurring usage credits.
* Credits reset every 30 days.
### Yearly Plans
* Single annual payment for a year's access.
* Despite yearly billing, credits are still allocated and reset monthly.
* Often comes with a discount compared to monthly billing.
### Lifetime Plans
* One-time payment for indefinite access.
* Monthly recurring credits that reset each month.
* Provides long-term value for committed users.
### Add-on Credits
* Non-recurring, permanent extra credits.
* Can be purchased at any time to supplement an active subscription.
* Used only after regular, recurring credits are depleted.
* Requires an active subscription (free or paid) to be usable.
* Cannot have separate feature configurations.
In the app, add-on credits are labeled **usage credits** — permanent, non-renewing extras used only after the monthly usage limit runs out.
#### Session-Based Usage Mode
When [session-based usage mode](/billing/overview#usage-mode) is enabled:
* Add-on balances are displayed as currency instead of credits
* The session cap still applies while monthly plan credits are being consumed
* When the session cap is reached, add-on credits allow continued usage until the add-on balance is depleted or the session resets
* Users can purchase more add-on credits through the **Buy usage credits** prompt when they hit the session limit
Add-on credits cannot be used without an active subscription, even if they've been purchased.
## Plan Snapshots and Subscriptions
When a user subscribes to a plan, Aikeedo creates a snapshot:
* A snapshot is a read-only copy of the plan at the subscription time.
* It ensures that subscribers retain the features and terms they signed up for, even if the original plan is later modified.
### Updating Plans and Snapshots
* Modifying a plan does not automatically affect existing subscriptions.
* To update current subscriptions (plan snapshots), check the "Update snapshots" checkbox when saving plan changes.
Be cautious when updating snapshots, as it will affect all current subscribers to that plan. Consider communicating changes in advance.
## Plan Customization
Aikeedo allows for granular control over what each plan offers:
* Tools, models, assistants, and writer templates can be individually toggled on or off for each plan.
* This allows you to create tiered offerings or specialized plans for different user segments.
## Credit System
Aikeedo uses a unified credit system to manage resource usage:
* Credits are the primary currency for accessing features and resources.
* Regular plans (Monthly, Yearly, Lifetime) provide recurring credits that reset periodically.
* Add-on credits supplement regular credits and don't expire, providing extra flexibility.
For more details on how credits work and are managed, check out our [Unified Credit System](/billing/unified-credit-system) page.
## Best Practices
* Regularly review your plan offerings to ensure they meet your users' needs.
* Communicate clearly about what each plan includes and how credits work.
* Consider offering a mix of plan types to cater to different user preferences and budgets.
* Use add-on credits as a way to upsell without requiring users to change their base subscription.
By understanding and effectively utilizing Aikeedo's plan and subscription system, you can create a flexible, user-friendly billing structure that grows with your business and satisfies your customers' needs.
# Unified Credit System
Source: https://docs.aikeedo.com/billing/unified-credit-system
Understand Aikeedo credit management system for AI operations including credit conversion ratios, usage tracking, and allocation across subscription plans.
## Introduction
The Unified Credit System simplifies usage management by replacing multiple unit types (tokens, image counts, audio seconds) with a single universal unit: credits.
## Key Features
* **Simplified Usage Tracking**: All usage is now measured in credits, making it easier to manage and understand user consumption.
* **Flexible Credit Conversion**: Administrators can define custom credit conversion ratios for different features and AI providers.
* **Flexible Credit Purchases**: Users can buy exact credits needed with better spending control and upfront usage estimates.
* **Improved Plan Management**: Simplifies the process of creating and managing subscription plans with a unified credit allocation.
## How It Works
### Credit Conversion
Credits are used as a universal currency within the Aikeedo platform. Each action (text generation, image creation, audio processing etc.) consumes a specific number of credits based on the defined conversion ratios.
### Setting Conversion Ratios
1. Log in to your Aikeedo admin panel.
2. Navigate to Settings in the left sidebar.
3. Under the Finance section, click on "Credit ratios".
4. Here, you'll find options to set credit costs for various AI models.
5. For each AI model, you can set the credit cost for their specific models or actions.
6. Ensure all fields are filled with appropriate values.
7. The Save button will only become active once all fields have been filled.
8. After filling in all fields and reviewing your changes, click the now-active Save button to apply the new ratios.
The Save button remains inactive until all credit ratio fields are filled. This ensures that no incomplete or potentially erroneous configurations are saved.
## Flexible Credit Purchases
Aikeedo now supports flexible credit purchasing, allowing users to buy exactly the credits they need:
### Upfront Usage Estimates
* **Image Tasks**: See estimated credits before generating images
* **Video Tasks**: Preview credit cost before video generation
* **Text Tasks**: Estimate costs for long-form content
* **Real-time Updates**: Estimates adjust based on selected models and parameters
### Custom Credit Amounts
* **Exact Purchases**: Buy any amount of credits, not just predefined packages
* **Better Control**: Spend only what you need for your projects
* **No Waste**: Avoid unused credits from large packages
* **Instant Access**: Credits are available immediately after purchase
### Negative Balance Handling
* **Overuse Protection**: Overused credits are recorded as negative balance
* **Automatic Deduction**: Negative balance is deducted from your next top-up
* **Transparent Tracking**: Clear visibility of your credit usage and balance
## Credit Calculator
To assist with setting up your credit system, we provide a Credit Calculator tool:
* Available as a Google Sheets document in the Commercial folder of your Aikeedo package
* Free for Extended/Commercial License users
* Helps calculate optimal credit conversion ratios based on your costs and desired pricing
Use the calculator to ensure your credit pricing aligns with your operational costs and profit margins. You can find the Credit Calculator in the [Commercial folder](/overview/commercial-resources) of your Aikeedo package.
## Benefits of the Unified Credit System
1. **Simplified User Experience**: Users deal with a single currency (credits) across all platform features.
2. **Flexible Pricing Models**: Easily create varied plans with different credit allocations.
3. **Easy Resource Management**: Monitor and control resource usage across all features from a single dashboard.
4. **Adaptable to New Features**: As new AI capabilities are added, they can be easily integrated into the existing credit system.
## Best Practices
* Regularly review and adjust your credit conversion ratios to reflect changes in AI service costs.
* Communicate clearly to users how credits are consumed for different actions.
* Use the credit system to create tiered plans that cater to different user needs and usage patterns.
By leveraging the Unified Credit System, you can create more flexible and user-friendly subscription plans while simplifying your platform's usage management. This system provides the foundation for scalable and adaptable pricing strategies as your Aikeedo platform grows and evolves.
# REST API Overview
Source: https://docs.aikeedo.com/development/api/overview
A quick look at Aikeedo's REST APIs for users and administrators
Aikeedo provides two REST APIs to interact with the platform programmatically:
1. **User API**: For end-users and client applications
2. **Admin API**: For system administrators and advanced integrations
## Enabling the APIs
Both APIs can be easily toggled on or off from the admin panel:
1. Go to **Settings > Features > API** in your Aikeedo admin dashboard
2. Use the switches to enable or disable each API as needed
API changes take effect immediately without requiring a system restart.
## Accessing API Documentation
Once enabled, you can find the auto-generated API documentation at:
* User API: `https://yourdomain.com/app/api-docs`
* Admin API: `https://yourdomain.com/admin/api-docs`
Replace `yourdomain.com` with your Aikeedo instance domain.
## Demo API Documentation
To preview the API documentation, you can check out our demo links:
* [User API Demo Docs](https://demo.aikeedo.com/app/api-docs)
* [Admin API Demo Docs](https://demo.aikeedo.com/admin/api-docs)
The demo links are for reference only. Do not use them for actual API calls.
For more detailed information on using the APIs, please refer to the specific documentation for your instance after enabling the APIs.
# Introduction to Aikeedo Development
Source: https://docs.aikeedo.com/development/introduction
Dive into the world of Aikeedo development and learn how to extend, customize, and enhance your AI-powered platform.
Welcome to the Aikeedo Development documentation! Whether you're a seasoned developer or just starting your coding journey, this guide will help you unlock the full potential of your Aikeedo platform.
## What is Aikeedo Development?
Aikeedo Development refers to the process of customizing and extending the Aikeedo platform to meet your specific needs. This can include:
* Creating custom plugins to add new features
* Developing themes to personalize your platform's appearance
* Integrating with third-party services and APIs
* Optimizing performance and functionality
## Why Develop for Aikeedo?
By diving into Aikeedo development, you can:
1. **Tailor your platform**: Create a unique experience that aligns perfectly with your brand and user needs.
2. **Extend functionality**: Add new features and capabilities beyond the core Aikeedo offering.
3. **Integrate seamlessly**: Connect Aikeedo with your existing tools and services for a unified workflow.
4. **Optimize performance**: Fine-tune your platform for maximum efficiency and user satisfaction.
## Getting Started
Before you begin your development journey, make sure you have:
1. A local installation of Aikeedo (If not, check out our [Local Installation Guide](/setup/installation/local))
2. Basic knowledge of PHP, JavaScript, and web development
3. Familiarity with composer and npm package managers
New to development? Don't worry! Our documentation is designed to guide you through the process step-by-step.
## Key Development Areas
### 1. Plugin Development
Plugins are the backbone of Aikeedo customization. Learn how to create powerful extensions that add new features and functionality to your platform.
Start building your first Aikeedo plugin
### 2. Theme Development
Make your Aikeedo platform visually stunning and on-brand with custom themes. Dive into our theming system and create beautiful, responsive designs.
Design and implement custom Aikeedo themes
### 3. Local Development Environment
Set up a robust local development environment to streamline your workflow and test your changes efficiently.
Configure your perfect Aikeedo development setup
## Best Practices
As you embark on your Aikeedo development journey, keep these best practices in mind:
1. **Follow coding standards**: Adhere to PHP-FIG standards and Aikeedo's coding style for consistency.
2. **Prioritize security**: Always validate user input and follow security best practices.
3. **Optimize performance**: Write efficient code and minimize database queries.
4. **Document your work**: Provide clear documentation for your plugins and themes.
5. **Stay updated**: Keep an eye on Aikeedo updates and adjust your code accordingly.
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
Remember, the best way to learn is by doing. Start with small projects and gradually tackle more complex developments as you become familiar with the Aikeedo ecosystem.
Ready to supercharge your Aikeedo platform? Let's start developing! 🚀
# Local Development Guide
Source: https://docs.aikeedo.com/development/local-development-guide
Set up your local environment to develop and customize Aikeedo efficiently. This comprehensive guide covers everything from prerequisites to running your local server and managing assets.
Welcome to the Aikeedo Local Development Guide! This guide will help you set up a local environment for Aikeedo development, assuming you've already installed Aikeedo on your machine.
If you haven't installed Aikeedo locally yet, please refer to our [Local Installation Guide](/setup/installation/local) first.
## Prerequisites
Before we dive in, make sure you have the following tools installed on your machine:
* PHP 8.2 or higher
* MySQL 8.0 or higher
* Node.js 18.x or higher
* npm 9.x or higher
These are the minimum required versions. We recommend using the latest LTS (Long Term Support) versions of Node.js and npm for the best performance and security.
To check if you have these installed and their versions, run the following commands in your terminal:
```bash theme={null}
php -v
mysql --version
node -v
npm -v
```
If you need to install or update any of these tools:
* PHP: Visit the [PHP installation guide](https://www.php.net/manual/en/install.php)
* MySQL: Check the [MySQL installation page](https://dev.mysql.com/doc/refman/8.0/en/installing.html)
* Node.js & npm: Download from the [Node.js official website](https://nodejs.org/)
We recommend using a version manager like [nvm](https://github.com/nvm-sh/nvm) for Node.js, which allows you to easily switch between different Node.js versions.
For more detailed requirements and recommendations, see our [Server Requirements](/overview/server-requirements) page.
## Step 1: Configure Environment Settings
Let's set up your environment for local development.
1. In the Aikeedo root directory, locate the `.env` file.
2. Open `.env` in your favorite text editor and update the following settings:
```ini theme={null}
ENVIRONMENT=dev
DEBUG=1
HMR=1
CACHE=0
```
3. Save the `.env` file.
These settings enable development mode, turn on debugging, activate Hot Module Replacement (HMR) for frontend development, and disable caching. This configuration helps you catch errors quickly and see your changes in real-time.
## Step 2: Set Up Frontend Development
Aikeedo comes pre-built with all necessary frontend assets. However, for local development, you'll need to start the Vite development server:
1. Open a terminal in the Aikeedo root directory.
2. Start the Vite development server:
```bash theme={null}
npm run dev
```
You should see output similar to this:
```
VITE v4.x.x ready in 123 ms
➜ Local: http://localhost:5173/
➜ Network: use --host to expose
➜ press h to show help
```
Keep this terminal window open. It will display compilation errors and automatically update your browser when you make changes to frontend files.
Since Aikeedo is pre-built, you typically don't need to run `npm install` or `composer install`. The necessary dependencies are already included in the package.
### Understanding the Asset Structure
Aikeedo organizes its assets into two main directories:
1. `/resources/assets`: For files that need processing (e.g., JavaScript, SCSS).
* Example: `/resources/assets/js/app/index.js` is the main JavaScript entry point.
* Example: `/resources/assets/css/index.scss` contains the main styles.
2. `/resources/static`: For files that should be copied as-is (e.g., images, fonts).
* Example: `/resources/static/images/logo.png` will be copied to `/public/images/logo.png`.
When adding new assets:
* Put files that need compilation (JS, CSS) in `/resources/assets`.
* Place static files (images, fonts) in `/resources/static`.
Vite will handle the rest during development and build processes!
## Step 3: Start the Backend Server
Now, let's get the PHP server running:
1. Open a new terminal window (keep the npm process running in the previous one).
2. Navigate to the Aikeedo root directory.
3. Start the PHP server:
```bash theme={null}
php -S 0.0.0.0:8000 -t public
```
You should see output like this:
```
PHP 8.2.x Development Server (http://0.0.0.0:8000) started
```
## Step 4: Access Your Local Aikeedo Instance
Time to see your work in action!
1. Open your web browser.
2. Navigate to `http://localhost:8000`.
You should now see the Aikeedo landing page. Congratulations! 🎉
If you don't see the page or encounter errors:
* Ensure both the Vite (npm) and PHP servers are running without errors.
* Check that your `.env` file is correctly configured.
* Verify that your database settings are correct and the database is accessible.
## Development Workflow
Now that everything is set up, here's your typical development workflow:
1. Make changes to PHP files for backend modifications.
* Example: Edit `/src/Presentation/RequestHandlers/IndexRequestHandler.php` to modify the home page logic.
2. Edit files in `/resources/views` for frontend changes.
* Example: Modify `/resources/views/templates/app/dashboard.twig` to update the dashboard layout.
3. Add or modify static assets in `/resources/static`.
* Example: Add a new image at `/resources/static/images/new-feature.jpg`.
4. Your browser will automatically reload for frontend changes thanks to HMR.
5. Refresh your browser to see backend changes take effect.
Remember, this setup is for the core Aikeedo development. For theme-specific work, check out our [Theme Development Guide](/development/themes/development-guide).
## Building for Production
When you're ready to build your assets for production:
1. Open a terminal in the Aikeedo root directory.
2. Run the build command:
```bash theme={null}
npm run build
```
This process will:
* Create a `public/assets` directory with optimized files.
* Copy static files from `/resources/static` to `/public`.
* Update the asset manifest in `/public/.vite`.
Avoid adding built files to your Git repository. Instead, include the build process in your deployment workflow.
## Troubleshooting
If you run into issues:
* **PHP errors**: Check the PHP server console and your application's error log file (typically found in the logs directory).
* **Frontend build errors**: Look at the npm/Vite console output.
* **Database issues**: Verify your `.env` settings and MySQL connection.
* **Missing assets**: Ensure files are in the correct `/resources` subdirectory.
For more help, visit our [Troubleshooting Guide](/setup/troubleshooting).
## Next Steps
Now that you're all set up, why not explore:
* [Creating Your First Plugin](/development/plugins/development-guide)
* [Customizing Aikeedo's Theme](/development/themes/development-guide)
* [Exploring the Aikeedo API](/development/api/overview)
Happy coding, and welcome to the world of Aikeedo development! 🚀
# Plugin Development Guide
Source: https://docs.aikeedo.com/development/plugins/development-guide
Learn how to create custom plugins to extend Aikeedo v3.x functionality with proper directory structure and integration patterns.
Plugins are powerful tools that allow you to enhance and customize your Aikeedo platform. This guide will walk you through the process of building a plugin for v3.x, using a simple Currency Beacon integration as an example.
This guide is for Aikeedo v3.x. The plugin structure has been updated from v2.x. Plugins are now located in `/extra/extensions/` directory.
## What are Aikeedo Plugins?
Aikeedo plugins are Composer packages that extend the functionality of your platform. They allow you to:
* Add new features and functionality
* Integrate with third-party services
* Extend existing capabilities
* Add custom currency rate providers, payment gateways, and more
Plugins give you the flexibility to tailor Aikeedo to your specific requirements without modifying the core codebase, ensuring easy updates.
## Prerequisites
Before you begin, make sure you have:
* Basic knowledge of PHP and Composer
* A local development environment set up for Aikeedo
* Composer installed on your system
If you need help setting up your local environment, refer to our [Local Development Guide](/development/local-development-guide).
## Step-by-Step Plugin Creation
Let's create a plugin that integrates [CurrencyBeacon](https://currencybeacon.com) as an alternative currency rate provider for your Aikeedo platform.
### Step 1: Create the Plugin Directory
In Aikeedo v3.x, plugins are located in the `/extra/extensions/` directory. Create a new directory for your plugin:
```bash theme={null}
mkdir -p extra/extensions/heyaikeedo/currency-beacon
```
The directory structure should follow the format: `yourorganization/plugin-name`. This naming convention helps identify and organize plugins consistently.
Unlike themes, plugins typically don't need a separate `/public/e/` directory unless they provide public-facing assets like CSS or JavaScript files.
### Step 2: Create the composer.json File
Every Aikeedo plugin requires a `composer.json` file containing essential metadata and dependencies.
Create a `composer.json` file in your plugin directory (`/extra/extensions/heyaikeedo/currency-beacon/composer.json`) with the following content:
```json theme={null}
{
"name": "heyaikeedo/currency-beacon",
"type": "aikeedo-plugin",
"version": "1.0.0",
"require": {
"heyaikeedo/composer": "^1.0.0"
},
"extra": {
"entry-class": "Aikeedo\\CurrencyBeacon\\Plugin"
},
"autoload": {
"psr-4": {
"Aikeedo\\CurrencyBeacon\\": "src/"
}
}
}
```
Let's break down the important parts of this file:
* `name`: Must match the path to your plugin directory (`yourorganization/plugin-name`)
* `type`: Always set to `aikeedo-plugin` for Aikeedo plugins
* `version`: Defines the current version of your plugin
* `require`: Lists the dependencies, including the required `heyaikeedo/composer` package
* `extra.entry-class`: Specifies the main class of your plugin
* `autoload`: Sets up PSR-4 autoloading for your plugin's classes
The `heyaikeedo/composer` package is required for all Aikeedo plugins. It provides essential functionality for plugin integration.
### Step 3: Create the Plugin Class
Now, let's create the main plugin class. This class will be responsible for initializing your plugin's functionality.
Create a file named `Plugin.php` in the `src` directory of your plugin:
```php theme={null}
If your plugin is published on Packagist or a private repository:
```bash theme={null}
composer require heyaikeedo/currency-beacon
```
For local development, add the plugin path to your `composer.json`:
```json theme={null}
{
"repositories": [
{
"type": "path",
"url": "./extra/extensions/heyaikeedo/currency-beacon"
}
]
}
```
Then install:
```bash theme={null}
composer require heyaikeedo/currency-beacon
```
### Step 6: Enable the Plugin
After installation, enable your plugin through the Aikeedo admin panel:
1. Log in to your Aikeedo admin panel
2. Go to the **Plugins** section
1. Locate your new plugin (Currency Beacon) in the list
2. Click the toggle or "Activate" button to enable it
Your plugin is now active and functional!
## Best Practices
1. **Follow PSR Standards**: Use PSR-4 autoloading and PSR-12 coding standards
2. **Version Control**: Use Git to track changes and maintain version history
3. **Semantic Versioning**: Follow semver for version numbers (e.g., 1.0.0, 1.1.0, 2.0.0)
4. **Documentation**: Include a README.md with installation and usage instructions
5. **Dependencies**: Only include necessary dependencies to keep the plugin lightweight
6. **Testing**: Write tests for your plugin's functionality
7. **Compatibility**: Ensure your plugin works with the latest Aikeedo version
8. **Security**: Validate and sanitize all inputs, especially from external APIs
## Advanced Topics
### Plugin with Public Assets
If your plugin needs CSS, JavaScript, or images, create an assets directory:
```bash theme={null}
mkdir -p public/e/heyaikeedo/currency-beacon/css
mkdir -p public/e/heyaikeedo/currency-beacon/js
```
Reference assets from `/e/yourorganization/plugin-name/` in your templates.
### Using Dependency Injection
Leverage Aikeedo's dependency injection container in your plugin:
```php theme={null}
public function boot(Context $context): void
{
$container = $context->getContainer();
// Register your services
$container->set(CurrencyService::class, function() {
return new CurrencyService();
});
}
```
### Hooks and Events
Use Aikeedo's event system to extend functionality:
```php theme={null}
public function boot(Context $context): void
{
$dispatcher = $context->getEventDispatcher();
$dispatcher->addListener(
'currency.rate.fetch',
[$this, 'handleCurrencyFetch']
);
}
```
## Troubleshooting
### Plugin Not Appearing in Admin Panel
* Verify `composer.json` has `"type": "aikeedo-plugin"`
* Ensure the `name` field matches your directory path
* Check that `heyaikeedo/composer` is in requirements
* Run `composer dump-autoload` to refresh autoloader
* Verify file permissions on the plugin directory
### Plugin Class Not Found
* Check the `extra.entry-class` in `composer.json` matches your class namespace
* Verify PSR-4 autoload configuration is correct
* Ensure the `Plugin.php` file is in the correct directory
* Run `composer dump-autoload -o`
### Plugin Enabled But Not Working
* Check PHP error logs for exceptions
* Verify the `boot()` method is being called
* Ensure all dependencies are installed
* Check that required services are available in the container
## Example Implementation
For a complete, working example of an Aikeedo plugin, check out the [Currency Beacon Plugin Repository](https://github.com/heyaikeedo/plugins-currency-beacon) on GitHub.
This example demonstrates:
* Proper v3.x directory structure
* Service integration
* API communication
* Error handling
* Configuration management
## Related Guides
* [Plugins Overview](/development/plugins/overview) - Understanding plugins and themes
* [Local Development Guide](/development/local-development-guide) - Set up your dev environment
* [API Overview](/development/api/overview) - Advanced integration options
* [Currency Beacon Plugin](https://github.com/heyaikeedo/plugins-currency-beacon) - Example implementation
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
Happy plugin development! 🚀
# Plugins and Themes Overview
Source: https://docs.aikeedo.com/development/plugins/overview
Discover how to enhance your Aikeedo v3.x platform's functionality by enabling and configuring plugins, and learn about the difference between plugins and themes.
# Understanding Aikeedo Plugins
Plugins are powerful tools that allow you to extend and customize the functionality of your Aikeedo platform. By leveraging plugins, you can tailor your platform to meet specific requirements and provide an enhanced user experience.
This guide reflects the Aikeedo v3.x structure. Plugins and themes are now located in `/extra/extensions/` with assets in `/public/e/`.
## What are Aikeedo Plugins?
Aikeedo plugins are specialized Composer packages designed to integrate seamlessly with your platform. They offer a wide range of capabilities, including:
* Adding new features and functionality
* Modifying existing functionality
* Integrating with third-party services
* Adding payment gateways, currency providers, and more
## Directory Structure
In Aikeedo v3.x, plugins and themes use a standardized directory structure:
* **Plugin/Theme files**: `/extra/extensions/yourorganization/name/`
* **Public assets**: `/public/e/yourorganization/name/` (CSS, JS, images)
## Plugins vs. Themes
While both extend Aikeedo's capabilities, they serve different purposes:
### Plugins
Plugins enhance functionality throughout your platform:
* Add new features to the application
* Integrate with third-party services (payment gateways, AI providers, etc.)
* Extend existing functionality
* Modify backend and admin functionality
**Example plugins:**
* Currency rate providers (CurrencyAPI, Currency Beacon)
* Payment gateways
* Analytics integrations
* Custom AI model providers
### Themes
Themes customize the visual appearance of your landing page:
* Modify landing page layout and design
* Customize colors, fonts, and styling
* Create unique user experiences
* Do not affect the app or admin dashboard appearance
**Key differences:**
| Aspect | Plugin | Theme |
| --------------------- | ---------------- | ----------------- |
| Type in composer.json | `aikeedo-plugin` | `aikeedo-theme` |
| Purpose | Functionality | Visual design |
| Affects | Entire platform | Landing page only |
| Requires assets | Optional | Usually yes |
Both plugins and themes are installed in `/extra/extensions/` and follow the same Composer package structure.
## Installing Plugins and Themes
You have multiple options for installing plugins and themes on your Aikeedo platform:
### 1. Via Composer (Recommended)
For published packages on Packagist or private repositories:
```bash theme={null}
composer require vendor/package-name
```
### 2. Local Development
For custom or in-development plugins:
1. Place your plugin/theme in `/extra/extensions/yourorganization/name/`
2. Add to your root `composer.json`:
```json theme={null}
{
"repositories": [
{
"type": "path",
"url": "./extra/extensions/yourorganization/name"
}
]
}
```
3. Install with Composer:
```bash theme={null}
composer require yourorganization/name
```
### 3. Aikeedo Dashboard
Use the web interface to:
* Browse available plugins and themes
* Install with one click
* Manage installed extensions
## Managing Plugins
Once installed, you can easily manage your plugins directly from the Aikeedo dashboard:
* Enable or disable plugins
* Configure plugin settings
* Update plugins to their latest versions
Regularly check for plugin updates to ensure you have the latest features and security improvements.
## Best Practices for Using Plugins
To get the most out of Aikeedo plugins, consider the following best practices:
1. **Research before installing**: Ensure the plugin is compatible with your version of Aikeedo and meets your specific needs.
2. **Test in a staging environment**: Before applying plugins to your live site, test them in a controlled environment to avoid potential conflicts.
3. **Keep plugins updated**: Regularly update your plugins to benefit from new features and security patches.
4. **Monitor performance**: Keep an eye on your platform's performance after installing new plugins to ensure they don't negatively impact speed or functionality.
## Developing Plugins and Themes
Want to create your own plugins or themes? Check out these comprehensive guides:
Learn to build custom plugins with step-by-step instructions and best practices
Create custom themes to personalize your landing page appearance
## Example Implementations
Learn from real-world examples:
* [Currency Beacon Plugin](https://github.com/heyaikeedo/plugins-currency-beacon) - Currency rate provider integration
* [Default Theme](https://github.com/heyaikeedo/themes-default) - Reference theme implementation
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
By leveraging the power of plugins and themes, you can create a truly unique and feature-rich experience for your Aikeedo platform users.
# Theme Development Guide
Source: https://docs.aikeedo.com/development/themes/development-guide
Learn how to create and customize themes for your Aikeedo v3.x platform using the modern themes-starter kit with Vite.js, Alpine.js, and Tailwind CSS.
# Building Themes for Aikeedo v3.x
Creating a custom theme for Aikeedo allows you to personalize the look and feel of your platform. This guide covers the modern approach using the **Aikeedo Theme Starter Kit** - a comprehensive development environment that streamlines theme creation.
This guide is for Aikeedo v3.x. We strongly recommend using the [themes-starter kit](https://github.com/heyaikeedo/themes-starter) for new theme development as it provides a modern build system and best practices.
## Modern Theme Development with Starter Kit
The **Aikeedo Theme Starter Kit** provides a modern development environment with:
* **Vite.js** for fast asset building and hot module replacement
* **Alpine.js** for lightweight JavaScript interactivity
* **Tailwind CSS** for utility-first styling
* **Twig** for PHP templating
* **Gettext** for internationalization
* **PHP Composer** package structure
## Theme Development Options
You have several options for theme development:
1. **Build a new theme** from scratch using the [themes-starter kit](https://github.com/heyaikeedo/themes-starter)
2. **Customize the default theme** for simple modifications
3. **Customize marketplace themes** for advanced modifications
4. **Rebuild themes from source** for complex customizations
### Choosing the Right Approach
**Use**: Quick customization (Option 2 or 3)
**Best for**:
* Changing colors, fonts, or basic styling
* Modifying text content
* Simple layout adjustments
* Adding basic HTML elements
**Limitations**:
* Manual asset copying required
* No hot reloading
* Limited to existing template structure
**Use**: Rebuild from source (Option 4)
**Best for**:
* Adding new components or features
* Major layout restructuring
* Custom JavaScript functionality
* Advanced CSS modifications
* Adding new template files
**Benefits**:
* Full development environment
* Hot module replacement
* Modern build tools
* Version control friendly
**Use**: Build from scratch (Option 1)
**Best for**:
* Completely custom design
* Unique functionality
* Commercial theme development
* Learning theme development
**Benefits**:
* Complete control
* Modern development stack
* Reusable across projects
## Option 1: Building a New Theme
### Clone the Starter Repository
Start by cloning the themes-starter repository:
```bash theme={null}
git clone https://github.com/heyaikeedo/themes-starter.git my-theme
cd my-theme
```
### Configure Your Theme Package
Edit `/static/composer.json` with your theme details:
```json theme={null}
{
"name": "your-vendor/your-theme-name",
"description": "Your theme description",
"version": "1.0.0",
"type": "aikeedo-theme",
"homepage": "https://your-site.com",
"license": "AIKEEDO",
"authors": [
{
"name": "Your Name",
"email": "your.email@example.com",
"homepage": "https://your-site.com",
"role": "Developer"
}
],
"support": {
"email": "support@your-site.com",
"docs": "https://docs.your-site.com/"
},
"require": {
"heyaikeedo/composer": "^1.0.0"
},
"extra": {
"entry-class": "YourVendor\\ThemeName\\Theme",
"title": "Your Theme Title",
"description": "Your theme description",
"logo": "https://your-site.com/logo.png",
"icon": "https://your-site.com/icon.png",
"status": "active",
"public": [
"assets",
".vite"
]
},
"autoload": {
"psr-4": {
"YourVendor\\ThemeName\\": "src/"
}
}
}
```
**Important**: Replace `YourVendor\\ThemeName` with your actual namespace. The namespace in `autoload.psr-4` must match your `entry-class` namespace.
### Set Up Environment
Create your local environment file:
```bash theme={null}
cp .env .env.local
```
Configure `.env.local` with your paths:
```bash theme={null}
# Windows path example:
BUILD_DIR=C:/xampp/htdocs/aikeedo/extra/extensions/your-vendor/your-theme-name
# Linux/Mac path example:
BUILD_DIR=/var/www/aikeedo/extra/extensions/your-vendor/your-theme-name
# Aikeedo server URL (required for development)
AIKEEDO_SERVER=http://localhost:8000
```
**Critical**: The final path segments (`your-vendor/your-theme-name`) MUST match your composer.json package name!
### Install Dependencies
Install npm packages:
```bash theme={null}
npm install
```
Verify installation:
```bash theme={null}
# Should list alpinejs and other dependencies
npm list
```
### Start Development Server
```bash theme={null}
npm run dev
```
This will:
* Start Vite dev server on port 5174
* Watch for file changes
* Copy static files to `BUILD_DIR`
* Extract translations automatically
### Register Theme with Aikeedo
In your Aikeedo installation directory:
```bash theme={null}
# Add your theme as a requirement
composer require your-vendor/your-theme-name
```
### Configure Aikeedo
Add or update these settings in your Aikeedo's `.env` file:
```bash theme={null}
# Required for development
THEME_ASSETS_SERVER=http://localhost:5174/
# Set environment to development
ENVIRONMENT=dev
# Enable debug mode for development
DEBUG=1
# Disable caching for development
CACHE=0
```
### Verify Installation
```bash theme={null}
# Your theme should be here
ls /path/to/aikeedo/public/content/plugins/your-vendor/your-theme-name
```
### Activate Your Theme
Access your Aikeedo admin panel
Go to the Themes section in the admin panel
Locate your theme in the list of available themes
Click "Publish" to activate your theme
Your theme is now active and visible to users!
## Option 2: Customizing the Default Theme
For simple modifications to the default theme, you can make direct changes without rebuilding from source.
This approach is suitable for basic customizations. For complex changes, consider rebuilding from source (Option 4).
### Quick Customization Guide
For detailed step-by-step instructions on customizing the default theme, including:
* Duplicating the default theme
* Updating composer configuration
* Copying public assets
* Activating your custom theme
* Making changes and managing cache
Complete step-by-step guide for customizing the default theme with detailed instructions for duplicating, configuring, and modifying themes.
## Option 3: Customizing Marketplace Themes
For themes purchased from the Aikeedo marketplace, follow the same process as customizing the default theme, but start with your purchased theme instead.
Always work on a copy of the theme to prevent losing changes during updates.
### Quick Customization Guide
Follow the same steps as customizing the default theme, but replace the default theme with your purchased theme.
Complete step-by-step guide for customizing themes with detailed instructions for duplicating, configuring, and modifying themes.
## Option 4: Rebuilding Themes from Source
For complex customizations, rebuild the theme from source using the same process as building a new theme.
### Rebuilding the Default Theme
```bash theme={null}
git clone https://github.com/heyaikeedo/themes-default.git my-custom-theme
cd my-custom-theme
```
Follow the same configuration steps as building a new theme, but update the package name to avoid conflicts:
```json theme={null}
{
"name": "yourorganization/custom-default",
"description": "Customized default theme",
"version": "1.0.0",
"type": "aikeedo-theme",
"require": {
"heyaikeedo/composer": "^1.0.0"
},
"extra": {
"title": "Custom Default Theme",
"status": "active"
}
}
```
Follow the same environment setup as building a new theme, but point to your custom theme directory.
Edit the source files in the `src/` and `static/` directories as needed.
```bash theme={null}
npm run build
npm run pack
```
## Project Structure
The themes-starter kit provides a well-organized structure:
```
theme-starter/
├── src/ # Frontend source
│ ├── js/ # JavaScript files
│ │ ├── components/ # Custom elements
│ │ └── index.js # Main JS entry
│ └── css/ # CSS files
│ ├── base.css # Base styles
│ └── index.css # Main CSS entry
│
├── static/ # PHP package structure
│ ├── composer.json # Package definition
│ ├── templates/ # Twig template files
│ ├── sections/ # Reusable template sections
│ ├── snippets/ # Template partials
│ ├── layouts/ # Base layouts
│ ├── locale/ # Translation files (.po)
│ └── src/ # PHP source files
│
└── scripts/ # Build and utility scripts
├── pack.mjs # Theme packaging
├── release.mjs # Release creation
└── locale-extract.mjs # Translation extraction
```
## Development Features
### Hot Module Replacement
The starter kit provides instant development feedback:
* **Instant CSS updates** via Tailwind CSS
* **Alpine.js component reloading** for JavaScript changes
* **Full page reload** for Twig template changes
* **Automatic static file copying** to your Aikeedo installation
### Custom Elements
The starter kit includes pre-built custom elements:
```html theme={null}
```
### Twig Templates
Use the modern Twig templating system:
```twig theme={null}
{% extends "@theme/layouts/theme.twig" %}
{% block template %}
{% include "@theme/sections/header.twig" %}
{{ content }}
{% endblock %}
```
### Internationalization
The starter kit includes automatic translation extraction:
* **Automatic string extraction** to PO files
* **Multiple language support** with Gettext
* **Translation file watching** during development
* **Uses PHP's Gettext** for translations
### Available Commands
| Command | Purpose |
| ----------------- | -------------------------------- |
| `npm run dev` | Start Vite development server |
| `npm run build` | Build production assets |
| `npm run serve` | Preview production build |
| `npm run locale` | Extract translatable strings |
| `npm run pack` | Create installable theme package |
| `npm run release` | Create distribution package |
### Theme Objects
Aikeedo provides several objects for use in Twig templates:
* **theme**: Theme metadata and configuration
* **option**: Site settings and options
* **user**: Current user information
* **environment**: Environment variables and settings
Refer to the [Theme Objects](/development/themes/objects) documentation for complete details.
## Best Practices
1. **Use the Starter Kit**: Always start with the [themes-starter](https://github.com/heyaikeedo/themes-starter) for new themes
2. **Responsive Design**: Ensure your theme looks good on all device sizes using Tailwind CSS
3. **Accessibility**: Follow WCAG guidelines to make your theme usable for everyone
4. **Performance**:
* Leverage Vite's built-in optimization
* Use Tailwind's utility classes for efficient CSS
* Implement lazy loading for images
* Take advantage of Alpine.js's lightweight nature
5. **Version Control**: Use Git to track changes and maintain version history
6. **Documentation**: Document your theme's features and customization options
7. **Testing**: Test across different browsers and devices
## Common Setup Issues
### Assets Not Loading
If theme assets aren't loading:
* Verify `THEME_ASSETS_SERVER` in Aikeedo's `.env`
* Ensure Vite server is running on port 5174
* Check proxy settings in `vite.config.mjs`
### Template Changes Not Reflecting
1. Clear Aikeedo's cache
2. Check `BUILD_DIR` path is correct
3. Verify file permissions
### Build Problems
* Verify all paths in `.env.local`
* Check write permissions on `BUILD_DIR`
* Review Vite build output for errors
## Related Guides
* [Landing Page Customization](/website-basics/landing-page) - Basic customization guide for the default theme
* [Theme Objects](/development/themes/objects) - Available objects for templates
* [Localization](/advanced/localization) - Add multilingual support
* [Themes Starter Repository](https://github.com/heyaikeedo/themes-starter) - Modern development starter kit
* [Default Theme Repository](https://github.com/heyaikeedo/themes-default) - Source code for the default theme
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
Happy theme development! 🎨
# Theme Objects
Source: https://docs.aikeedo.com/development/themes/objects
Complete reference for all theme objects, variables, and data structures available in Aikeedo themes.
# Theme Objects Reference
This comprehensive guide covers all theme objects, variables, and data structures available in Aikeedo themes. Each object provides specific functionality and data access for building dynamic theme components.
## Global Objects and Variables
These objects and variables are available globally throughout all theme templates:
* `version` - App version information
* `theme` - Current theme name
* `environment` - Current environment
* `nav` - Navigation registry
* `view_namespace` - Current view namespace
* `config` - All configuration settings
* `currency` - Global currency information
* `locales` - Available locales array
* `locale` - Current locale object
* `option` - All option settings
## User-Specific Objects
These objects are only available when a user is logged in:
* `user` - Current user object with workspace information
* `workspace` - Current user's workspace object
## Nested Objects
These objects are available as properties of other objects:
* `address` - Available as `workspace.address`
* `affiliate` - Available as `user.affiliate`
* `country` - Available as `user.country`
* `subscription` - Available as `workspace.subscription`
* `plan_snapshot` - Available as `subscription.plan`
## User Object
The `user` object is a fundamental component in Aikeedo themes, providing access to essential user information when a user is logged into their account. This object is globally accessible, allowing you to easily incorporate user-specific data and functionality into your theme.
The `user` object is available globally when a user is logged in. If no user is logged in, the object will be undefined. Always check for the existence of the `user` object before attempting to access its properties.
It's a good practice to use conditional checks when working with the `user` object to ensure your theme functions correctly for both logged-in and guest users.
A unique identifier for the user, always in UUID version 4 format (e.g., "01895d81-4963-71b4-b591-8404987d6954").
The user's role in the system. Possible values are:
* `admin`: Administrator role with full system access
* `user`: Standard user role with limited permissions
The user's email address.
The user's first name.
The user's last name.
The user's phone number. This field may be null if not set.
The user's preferred language code (e.g., "en-US").
Indicates whether the user has set a password. Users who signed up using 3rd party services like Google will not have a password.
The calculated amount of workspaces the user can have. This value may be null if unlimited.
URL to the user's Gravatar avatar image (generated from email hash).
Unix timestamp of when the user account was created.
Unix timestamp of the last update to the user account. While this field always exists, its value may be null if the user account has never been updated.
The IP address associated with the user account.
The user's country information. See Country Object for more details on the properties of this object.
The name of the city associated with the user.
Indicates whether the user's email has been verified.
The user's API key (partially masked for security).
The user's affiliate object. See Affiliate Object for more details on the properties of this object.
The user's active workspace object. See Workspace Object for more details on the properties of this object.
The user's preferences and settings.
An array of workspace objects that the user is a member of, excluding workspaces owned by the user. Each object in this array represents a workspace where the user has membership but not ownership. See Workspace Object for more details on the properties of these objects.
An array of workspace objects that the user owns. See Workspace Object for more details on the properties of these objects.
## Affiliate Object
The `affiliate` object provides access to essential affiliate information for users participating in the affiliate program. This object is part of the user object and contains details about the user's affiliate status, earnings, and payout preferences.
The `affiliate` object is always available as a property of the `user` object when a user is logged in. Affiliate accounts are automatically generated for each user, so you can safely access `user.affiliate` properties without additional checks for its existence.
A unique identifier for the affiliate account, always in UUID version 4 format (e.g., "0191acee-3bf1-71cf-ac75-7a9e06fd6a3c").
The PayPal email address associated with the affiliate account for payouts. This field may be null if not set by the user.
Bank account details for payouts. This field may be null if not set by the user.
The unique affiliate code assigned to the user (e.g., "87a052aa0996"). This code is used to track referrals.
The total number of clicks on the user's affiliate links.
The total number of successful referrals made by the affiliate.
The current balance of earnings available for payout to the affiliate. Amount in currency minor units.
The amount of earnings that have been requested for payout but not yet processed or paid out. Amount in currency minor units.
The total amount of earnings that have been paid out to the affiliate. Amount in currency minor units.
An object containing information about the currency used for affiliate earnings. See Currency Object for more details.
The preferred payout method chosen by the affiliate. Possible values are:
* `paypal`: PayPal payout method
* `bank_transfer`: Bank transfer payout method
## Country Object
The `country` object provides access to country information for users. This object contains details about the user's country including name, codes, and flag information.
The `country` object is available as a property of the `user` object. It may be null if the user's country is not set.
The full name of the country (e.g., "United States").
The two-letter country code (e.g., "US").
The three-letter country code (e.g., "USA").
URL to the country's flag image (e.g., "[https://flagcdn.com/us.svg](https://flagcdn.com/us.svg)").
## Currency Object
The `currency` object provides access to currency information used throughout the system. This object is used to represent various currencies and their properties.
The `currency` object is globally available and represents the global currency set in the billing settings. It can be accessed in other contexts where currency information is needed, such as in `affiliate.currency` or `subscription.currency`.
A unique three-letter code that identifies the currency, following the ISO 4217 standard (e.g., "USD" for United States Dollar).
The full name of the currency (e.g., "United States Dollar").
The symbol used to represent the currency. This can be null if no specific symbol is associated with the currency.
The number of digits typically used for fractional amounts of this currency (e.g., 2 for currenzcies like USD or EUR, which use cents, or 0 for currencies like JPY that don't use fractional units).
## Environment Variable
The `environment` variable is used to determine the current execution environment in Aikeedo themes. This is important for making environment-specific decisions in your theme logic.
The `environment` variable is available globally throughout the theme.
The current environment value. This is the same as the `ENVIRONMENT` value set in the `/.env` file.
## Locale Object
The `locale` object provides access to language and region information used throughout the system. This object is used to represent various locales and their properties.
The `locale` object is available in various contexts throughout the Aikeedo system where language and region information is relevant. It can be accessed in theme templates and components to display localized content, format dates and numbers, or adapt the user interface to specific cultural preferences.
A unique identifier for the locale, typically following the format of language code and country/region code (e.g., "en-US" for English in the United States).
A human-readable name for the locale, usually in the language of the locale itself (e.g., "English (US)" for the en-US locale).
Indicates whether this locale is currently active and available for use in the system.
## Locales Array
The `locales` array provides access to all available language and region configurations in the system. This array contains multiple Locale objects, each representing a specific language-region combination.
The `locales` array is globally available throughout the Aikeedo system. It can be accessed in theme templates, components, and other contexts where information about all supported languages is needed. This array is particularly useful for implementing language selection features or displaying available language options to users.
The array of locales available in the system. Each element is a Locale object.
## Plan Object
The `Plan` object represents a subscription plan in Aikeedo themes, providing access to essential plan information. This object is part of the `plans` array, which is globally accessible, allowing you to easily incorporate plan-specific data and functionality into your theme.
The `Plan` objects are available globally as part of the `plans` array. You can iterate through this array to access individual plan objects and their properties.
It's a good practice to check if the `plans` array exists and has elements before attempting to access individual plan objects.
A unique identifier for the plan, always in UUID version 4 format (e.g., "018e73c8-c4d7-7124-b9ee-83fcf3e1c74b").
The name or title of the plan (e.g., "Free").
A brief description of the plan (e.g., "Launch Your Journey").
URL to the plan's icon image. This field can be null if no icon is set.
The price of the plan. For free plans, this value will be 0.
The billing cycle for the plan (e.g., "monthly").
The number of credits included in the plan.
Unix timestamp of when the plan was created.
Unix timestamp of the last update to the plan.
Indicates whether the plan is featured or not.
A numeric value representing the plan's superiority or ranking compared to other plans.
The configuration object for the plan. See Plan Config Object for more details on the properties of this object.
An array of features included in the plan. This array may be empty if no specific features are defined.
## Plan Snapshot Object
The `plan_snapshot` object represents a snapshot of a subscription plan at the time of subscription creation. This object is used in subscriptions to maintain the plan details even if the original plan is modified.
The `plan_snapshot` object is available as a property of the `subscription` object.
A unique identifier for the plan snapshot.
The name or title of the plan at the time of snapshot.
A brief description of the plan at the time of snapshot.
URL to the plan's icon image at the time of snapshot. This field can be null if no icon was set.
The price of the plan at the time of snapshot.
The billing cycle for the plan at the time of snapshot.
The number of credits included in the plan at the time of snapshot.
The maximum number of members allowed in the workspace for this plan.
Unix timestamp of when the plan snapshot was created.
Unix timestamp of when the plan snapshot was last updated.
The configuration object for the plan at the time of snapshot.
An array of features included in the plan at the time of snapshot. Each feature object contains:
* `title`: The feature title
* `is_included`: Boolean indicating if the feature is included (true) or excluded (false)
## Plan Config Object
The `plan-config` object contains configuration settings for different AI models, tools, and features available in a specific plan. It defines which capabilities are enabled and which models are accessible.
The `plan-config` object is available as a property of the `plan` object. It can be accessed within theme templates when working with plan-related data.
Writer feature configuration.
Indicates whether the writer feature is enabled for this plan.
Specifies the AI model used for the writer feature (e.g., "gpt-4o").
Coder feature configuration.
Indicates whether the coder feature is enabled for this plan.
Specifies the AI model used for the coder feature (e.g., "gpt-4o").
Indicates whether the imagine feature is enabled for this plan.
Indicates whether the transcriber feature is enabled for this plan.
Indicates whether the voiceover feature is enabled for this plan.
Indicates whether the chat feature is enabled for this plan.
Indicates whether the voice isolator feature is enabled for this plan.
Indicates whether the classifier feature is enabled for this plan.
Indicates whether the composer feature is enabled for this plan.
Specifies the AI model used for the titler feature (e.g., "gpt-4o-mini").
An object containing boolean flags for various AI models, indicating which ones are available in this plan. Examples include:
* `o1-preview`, `o1-mini`, `gpt-4o`, `gpt-4o-mini`, `gpt-4-turbo`, `gpt-4`, `gpt-3.5-turbo`
* `claude-3-5-sonnet-20240620`, `claude-3-haiku-20240307`, `claude-3-sonnet-20240229`, `claude-3-opus-20240229`
* `command-r-plus`, `command-r`, `command`, `command-light`
* `dall-e-3`, `dall-e-2`, `flux/dev`, `flux/schnell`, `flux-pro`, `flux-realism`
* `sd-ultra`, `sd-core`, `sd3-large`, `sd3-large-turbo`, `sd3-medium`
* `stable-diffusion-xl-1024-v1-0`, `stable-diffusion-v1-6`, `clipdrop`
* `tts-1`, `eleven_multilingual_v2`, `eleven_turbo_v2_5`, `eleven_multilingual_v1`, `eleven_monolingual_v1`
* `google-tts-standard`, `google-tts-premium`, `google-tts-studio`, `azure-tts`
* `chirp-v3-5`, `chirp-v3-0`
An object specifying which tools are available in this plan:
* `embedding_search`: Boolean indicating if embedding search is enabled
* `google_search`: Boolean indicating if Google search is enabled
* `cohere_web_search`: Boolean indicating if Cohere web search is enabled
* `web_scrap`: Boolean indicating if web scraping is enabled
* `generate_image`: Boolean indicating if image generation is enabled
Specifies the embedding model used for this plan (e.g., "text-embedding-3-small").
An array of assistant IDs that are available in this plan. If set to null, all assistants are available.
An array of preset IDs that are available in this plan. If set to null, all presets are available.
## Subscription Object
The `subscription` object provides access to subscription information for a workspace or user. This object contains details about the subscription status, usage, and related information.
The `subscription` object is available within the `workspace` or `user.workspace` objects.
A unique identifier for the subscription.
The number of days in the trial period. This can be null if there is no trial period.
The amount of usage consumed in the current subscription period.
The percentage of usage consumed, represented as a string with two decimal places.
The remaining credit available in the current subscription period.
The percentage of credit remaining, represented as a string with two decimal places.
The Unix timestamp representing when the subscription was created.
The Unix timestamp representing when the subscription was last updated.
The Unix timestamp representing when the subscription was canceled. This can be null if the subscription has not been canceled.
The Unix timestamp representing when the subscription is scheduled to be canceled. This can be null if no cancellation is scheduled.
The Unix timestamp representing when the subscription is scheduled to renew.
A link to the PlanSnapshot object associated with this subscription. See Plan Snapshot Object for more details on the properties of this object.
A link to the Currency object associated with this subscription. See Currency Object for more details on the properties of this object.
The payment gateway used for this subscription (e.g., "stripe", "paypal").
The external ID from the payment gateway for this subscription.
## User Object
The `user` object is a fundamental component in Aikeedo themes, providing access to essential user information when a user is logged into their account. This object is globally accessible, allowing you to easily incorporate user-specific data and functionality into your theme.
The `user` object is available globally when a user is logged in. If no user is logged in, the object will be undefined. Always check for the existence of the `user` object before attempting to access its properties.
It's a good practice to use conditional checks when working with the `user` object to ensure your theme functions correctly for both logged-in and guest users.
A unique identifier for the user, always in UUID version 4 format (e.g., "01895d81-4963-71b4-b591-8404987d6954").
The user's role in the system. Possible values are:
* `admin`: Administrator role with full system access
* `user`: Standard user role with limited permissions
The user's email address.
The user's first name.
The user's last name.
The user's phone number. This field may be null if not set.
The user's preferred language code (e.g., "en-US").
Indicates whether the user has set a password. Users who signed up using 3rd party services like Google will not have a password.
The calculated amount of workspaces the user can have. This value may be null if unlimited.
URL to the user's Gravatar avatar image (generated from email hash).
Unix timestamp of when the user account was created.
Unix timestamp of the last update to the user account. While this field always exists, its value may be null if the user account has never been updated.
The IP address associated with the user account.
The user's country information. See Country Object for more details on the properties of this object.
The name of the city associated with the user.
Indicates whether the user's email has been verified.
The user's API key (partially masked for security).
The user's affiliate object. See Affiliate Object for more details on the properties of this object.
The user's active workspace object. See Workspace Object for more details on the properties of this object.
The user's preferences and settings.
An array of workspace objects that the user is a member of, excluding workspaces owned by the user. Each object in this array represents a workspace where the user has membership but not ownership. See Workspace Object for more details on the properties of these objects.
An array of workspace objects that the user owns. See Workspace Object for more details on the properties of these objects.
## Version Variable
The `version` variable provides access to the currently installed version of the Aikeedo app. This can be useful for version-specific logic or displaying the app version in your theme.
The `version` variable is available globally throughout the theme.
The current version of the Aikeedo app. This value is read from the `/VERSION` file.
## Theme Variable
The `theme` variable provides access to the current theme name being used.
The `theme` variable is available globally throughout the theme.
The current theme name (e.g., "heyaikeedo/default").
## Nav Variable
The `nav` variable provides access to the navigation registry for building navigation menus.
The `nav` variable is available globally throughout the theme.
The navigation registry object for building navigation menus.
## View Namespace Variable
The `view_namespace` variable indicates which namespace the current view belongs to.
The `view_namespace` variable is available globally throughout the theme.
The current view namespace. Possible values are:
* `"app"`: For application views
* `"admin"`: For admin views
* `null`: For other views
## Config Variable
The `config` variable provides access to all configuration settings.
The `config` variable is available globally throughout the theme.
An object containing all configuration settings from the application.
## Option Variable
The `option` variable provides access to all option settings configured in the admin panel.
The `option` variable is available globally throughout the theme.
An object containing all option settings from the admin panel. This includes site settings, billing options, color schemes, and other customizable options.
## Workspace Object
The `workspace` object is a fundamental component in Aikeedo themes, representing a user's working environment and associated settings. This object contains crucial information about the workspace, including subscription details, credit usage, and various configuration options.
The `workspace` object is available globally when a user is logged into the app. Additionally, it is always accessible as a property of the `user` object. Each user has at least one workspace, so you can safely access `workspace` properties or `user.workspace` properties without additional checks for their existence.
A unique identifier for the workspace, always in UUID version 4 format (e.g., "018d5355-c857-7044-8284-83e7950685b4").
The name of the workspace (e.g., "Personal").
The OpenAI API key associated with the workspace.
The Anthropic API key associated with the workspace.
The workspace's address information. This may be null if not set. See Address Object for more details on the properties of this object when it's not null.
Indicates whether the workspace is eligible for a trial period.
Indicates whether the workspace is eligible for a free plan.
Unix timestamp of when the workspace was created.
Unix timestamp of the last update to the workspace. While this field always exists, its value may be null if the workspace has never been updated.
An array of pending invitations to join the workspace. This array may be empty. See Workspace Invitation Object for more details.
The current number of credits available in the workspace.
The total number of credits allocated to the workspace, including used and available credits.
An object containing detailed information about the workspace's subscription. See Subscription Object for more details.
The owner of the workspace. This property is only available when the workspace is extended with user information.
An array of users who are members of the workspace. This property is only available when the workspace is extended with user information.
## Workspace Invitation Object
The `workspace_invitation` object represents an invitation to join a workspace in Aikeedo themes. This object contains essential information about the invitation, including its unique identifier, the invited email address, and timestamps.
The `workspace_invitation` object is available in contexts related to workspace management, such as when listing pending invitations or processing invitation responses.
Always check for the existence of the `workspace_invitation` object before attempting to access its properties to ensure your theme functions correctly in all invitation-related scenarios.
A unique identifier for the workspace invitation, always in UUID version 4 format (e.g., "018d5355-c857-7044-8284-83e7950685b4").
The email address of the user invited to join the workspace.
Unix timestamp of when the workspace invitation was created.
Unix timestamp of the last update to the workspace invitation. This may be the same as `created_at` if the invitation hasn't been modified since creation.
# Mailer Configuration
Source: https://docs.aikeedo.com/email/mailer
Configure email delivery in Aikeedo using SMTP or Null transport, set sender details, and test email functionality for user communications.
Proper email configuration ensures reliable delivery of system notifications, password resets, and user communications. This guide covers mailer transport setup and sender configuration.
## Understanding Mailer Settings
Before diving into the configuration process, it's important to understand the key components of Aikeedo's mailer system.
### Mailer Transports
Aikeedo supports two types of mailer transports:
1. **Null Transport (Default)**
* This option ignores sending emails, making it useful for testing purposes.
* No actual emails are sent when this transport is selected.
2. **SMTP Transport**
* Sends emails using an SMTP (Simple Mail Transfer Protocol) server.
* Requires additional configuration of SMTP settings.
If you choose the SMTP Transport, make sure to configure your SMTP settings first. You can find detailed instructions in our [SMTP Configuration Guide](/email/smtp).
### Sender Details
Two important fields define how your emails appear to recipients:
* **Sender Email**: The email address that will be used as the sender for all system emails.
* **Sender Name**: The name that will appear as the sender for all system emails.
## Step-by-Step Configuration Guide
Follow these steps to set up your mailer in Aikeedo:
### 1. Access the Admin Panel
To access the mailer configuration in Aikeedo, log in to the admin panel using your administrator credentials. Once logged in, navigate to Settings > Email > Mail. This will take you to the mailer configuration page where you can adjust your email settings.
### 2. Configure Mailer Settings
1. In the "General" section, find the "Mailer transport" dropdown menu.
2. Choose between "Null Transport" (for testing) or "SMTP Transport" (for actual email sending).
If you select "SMTP Transport", ensure you have properly configured your SMTP settings beforehand.
1. Locate the "Sender details" section.
2. Enter the desired email address in the "Sender email" field (e.g., [noreply@yourdomain.com](mailto:noreply@yourdomain.com)).
3. Specify the name you want recipients to see in the "Sender name" field (e.g., "Aikeedo Support").
### 3. Save Your Configuration
After entering all the necessary information:
1. Review your settings to ensure accuracy.
2. Click the "Save changes" button at the bottom of the page to apply your new mail configuration.
Your mailer is now configured! Aikeedo will use these settings for all system-generated emails.
## Testing Your Configuration
It's always a good idea to test your email configuration to ensure everything is working correctly:
1. Set up a test user account or use an existing one.
2. Trigger an email-sending action (e.g., password reset, welcome email).
3. Check the receiving inbox to confirm the email was sent and received correctly.
If you're using the Null Transport for testing, remember that no actual emails will be sent. You may need to check your application logs or use a debugging tool to verify the email sending process.
## Troubleshooting
If you encounter issues with email delivery:
* Verify your SMTP settings if using SMTP Transport
* Ensure your sender email is correctly formatted and from a valid domain
* Check server firewall settings for outgoing SMTP traffic
* Consider using a dedicated email service provider for improved deliverability
* Review server logs for detailed error messages
For advanced configuration, refer to our [SMTP Configuration Guide](/email/smtp).
## Related Guides
* [SMTP Setup](/email/smtp) - Configure SMTP server details
* [Email Templates](/advanced/email-templates) - Customize email content
* [Application Configuration](/setup/configuration) - Complete setup checklist
# SMTP Configuration
Source: https://docs.aikeedo.com/email/smtp
Learn how to set up and configure SMTP for secure and reliable email delivery in Aikeedo.
# SMTP Configuration
Setting up SMTP (Simple Mail Transfer Protocol) is crucial for ensuring reliable email delivery from your Aikeedo application. This guide will walk you through the process of configuring SMTP settings, whether you're a tech-savvy administrator or new to email server configurations.
## Understanding SMTP
SMTP is the standard protocol for sending emails across the Internet. By configuring SMTP in Aikeedo, you ensure that all system-generated emails (such as user notifications, password resets, and marketing communications) are sent reliably and securely.
## Before You Begin
Before configuring SMTP settings, you'll need to obtain the following details from your SMTP provider:
* SMTP Host (server address)
* Port number
* Username
* Password
* Encryption method (TLS/SSL)
If you don't have an SMTP server, consider using a reputable third-party service like [SendGrid](https://sendgrid.com/), [Mailgun](https://www.mailgun.com/), [Amazon SES](https://aws.amazon.com/ses/), or [Brevo](https://www.brevo.com/). These services offer reliable email delivery and often provide free tiers for low-volume senders.
## Step-by-Step Configuration
Follow these steps to set up SMTP in your Aikeedo application:
### 1. Access the Admin Panel
Log in to your Aikeedo admin panel using your administrator credentials.
### 2. Navigate to SMTP Settings
In the admin panel, follow this path:
**Settings > Email > SMTP**
### 3. Enter SMTP Details
Fill in the form with the SMTP details you obtained from your provider:
* **SMTP Host**: Enter the address of your SMTP server (e.g., `smtp.gmail.com` for Gmail)
* **Port**: Specify the port number (common ports are 25, 465, or 587)
* **Username**: Your SMTP server username (often your email address)
* **Password**: Your SMTP server password or app-specific password
For enhanced security, many providers recommend using app-specific passwords instead of your main account password. Check your email provider's documentation for instructions on generating these.
### 4. Save and Validate
Click the "Save changes" button to apply your new SMTP settings. Aikeedo will automatically attempt to validate your configuration before saving.
### 5. Test the Configuration
After saving, it's a good practice to send a test email to ensure everything is working correctly:
1. Set up a test user account or use an existing one.
2. Trigger an email-sending action (e.g., password reset, welcome email).
3. Check the receiving inbox to confirm the email was sent and received correctly.
## cPanel SMTP Restrictions
If your Aikeedo installation is on a cPanel server, you may encounter issues when trying to use external SMTP servers. This is because cPanel blocks access to external SMTP servers by default as a security measure.
### Resolving cPanel SMTP Restrictions
If you're experiencing difficulties sending emails through an external SMTP server on a cPanel-managed hosting account, follow these steps:
1. Contact your hosting provider or server administrator.
2. Request that they disable SMTP restrictions for your account.
3. The server administrator can disable SMTP restrictions through WHM (Web Host Manager) by navigating to:
**Home » Security Center » SMTP Restrictions**
4. On this page, they can disable the SMTP restrictions for your specific account or globally for the server.
For more information on this process, you can refer to the [cPanel documentation on disabling SMTP restrictions](https://support.cpanel.net/hc/en-us/articles/1500009931961-How-to-disable-SMTP-Restrictions).
## Troubleshooting
If you encounter issues with your SMTP configuration, try the following:
* Double-check all entered information for typos or errors
* Ensure your SMTP provider account is in good standing
* Check if your server's IP is blacklisted
* Verify that your firewall isn't blocking the necessary ports
* If using cPanel, confirm that SMTP restrictions have been disabled
If you're using a personal email account (like Gmail) for SMTP, you may need to enable "Less secure app access" or use an app-specific password. However, for production environments, it's recommended to use a dedicated SMTP service.
## Next Steps
Once you've successfully configured SMTP, make sure to update your [Mail Settings](/email/mailer) to use SMTP as the transport method. This ensures that all outgoing emails from Aikeedo will use your new SMTP configuration.
## Security Considerations
* Regularly update your SMTP password to maintain security
* Monitor your email sending patterns to detect any unusual activity
* Consider implementing SPF, DKIM, and DMARC records to improve email deliverability and security
By following this guide, you should now have a properly configured SMTP setup for your Aikeedo application, ensuring reliable email delivery for all your users and system-generated communications.
# AI/ML API Integration
Source: https://docs.aikeedo.com/integrations/aimlapi
Enhance your Aikeedo platform with AI/ML API's advanced language models. This guide walks you through setting up and leveraging AI/ML API's powerful Chirp models for various AI tasks.
**Integration Status: Obsolete**
This integration is no longer actively maintained. The primary purpose of this integration was to provide access to Suno API, which was discontinued on November 27, 2024. This integration may be removed or updated in future Aikeedo releases.
Consider using alternative integrations for your AI needs.
## Introduction
Aikeedo's AI/ML API integration unlocks advanced language processing capabilities for your platform. With access to the Chirp models, you can significantly enhance your AI-powered tools, allowing users to perform a wide range of language-related tasks.
## Setting Up the Integration
Follow these steps to connect AI/ML API with your Aikeedo platform:
### Step 1: Obtain Your AI/ML API Key
1. If you don't have an AI/ML API account, [sign up here](https://aimlapi.com/).
2. Once logged in, navigate to your AI/ML API dashboard.
3. In the left sidebar, click on "API Keys" under the "Key Management" section.
4. If you don't have an existing API key, you'll need to generate a new one.
5. Copy your API key—you'll need this for Aikeedo.
Keep your API key secure and confidential. It grants access to AI/ML API services and should not be shared publicly.
AI/ML API provides an AI Playground where you can test different models and settings. This can be useful for experimenting with the Chirp models before integrating them into your Aikeedo platform.
### Step 2: Configure Aikeedo
1. Log in to your Aikeedo admin panel.
2. Navigate to **Settings > AI/ML API**.
3. In the "API" section, enter your AI/ML API key in the "API Key" field.
4. Click **Save changes** to activate the integration.
Great job! AI/ML API is now integrated with your Aikeedo platform.
## Aikeedo Tools Powered by AI/ML API
AI/ML API integration enhances the following Aikeedo tool:
1. **Composer**: Create, edit, and refine text content using AI/ML API's Chirp language models.
## Best Practices
To make the most of your AI/ML API integration:
* Experiment with both Chirp models to find the best fit for your use case.
* Provide clear and detailed prompts for optimal results.
* Consider the complexity and context of your tasks when selecting between v3.5 and v3.0.
* Monitor your API usage to manage costs effectively.
* Stay updated on any new features or improvements to the Chirp models.
## Troubleshooting
If you encounter issues with the AI/ML API integration, try these steps:
1. Verify that your API key is correct and active.
2. Check your AI/ML API account for any usage limits or restrictions.
3. Ensure your Aikeedo platform is up to date.
4. If you receive error messages related to model access or quotas, verify your account status with AI/ML API.
5. For model-specific issues, confirm that your account has access to both Chirp models.
6. If you experience slow response times, consider optimizing your prompts or checking your network connection.
Can't find your API Key? Click the "Click here" link below the API Key field in the Aikeedo settings for additional guidance.
Remember to review AI/ML API's usage policies and pricing to ensure compliance and manage costs effectively as you scale your AI integration.
# Azure Integration
Source: https://docs.aikeedo.com/integrations/azure
Enhance your Aikeedo platform with Microsoft Azure's advanced AI capabilities. This guide walks you through setting up and leveraging Azure's powerful text-to-speech services for high-quality voice generation.
## Introduction
Aikeedo's Azure integration unlocks advanced text-to-speech capabilities for your platform. With access to Azure's Speech API, you can significantly enhance your VoiceOver tool and audio content creation with high-quality, natural-sounding voices.
## Setting Up the Integration
Follow these steps to connect Microsoft Azure with your Aikeedo platform:
### Step 1: Set Up Azure Speech Service
1. If you don't have an Azure account, [sign up here](https://azure.microsoft.com/free/).
2. Once logged in, access the Azure portal at [portal.azure.com](https://portal.azure.com).
3. Create a new Speech service resource:
* Click on "Create a resource" in the Azure portal.
* Search for "Speech" and select "Speech" from the results.
* Click "Create" to start setting up the Speech service.
* Fill in the required details:
* Choose a name for your resource.
* Select your subscription.
* Choose a resource group or create a new one.
* Select a region (this will be your "Location/Region" in Aikeedo).
* Choose a pricing tier (Free tier is available for testing).
* Click "Review + create" and then "Create" to deploy the Speech service.
4. Once deployment is complete, go to your Speech service resource.
5. In the left menu, under "Resource Management", click on "Keys and Endpoint".
6. You'll find your API key (listed as KEY 1 or KEY 2) and region here. You'll need these for Aikeedo.
Keep your API key secure and confidential. It grants access to your Azure services and should not be shared publicly.
### Step 2: Configure Aikeedo
1. Log in to your Aikeedo admin panel.
2. Navigate to **Settings > Azure Integrations**.
3. In the "Speech API (TTS)" section:
* Select your "Location/Region" from the dropdown menu.
* Enter your Azure Speech API key in the "API Key" field.
4. Click **Save changes** to activate the integration.
Great job! Azure Speech API is now integrated with your Aikeedo platform.
## Available Voice Types
Azure's Text-to-Speech service offers a variety of voice types:
* Neural voices
* Standard voices
* Custom voices (if configured in your Azure account)
These voice types offer different levels of quality and naturalness, allowing you to choose the best fit for your specific use case.
## Aikeedo Tools Powered by Azure
Azure integration enhances the following Aikeedo tool:
1. **VoiceOver**: Transform text into high-quality, natural-sounding speech using a wide range of voices and languages.
## Best Practices
To make the most of your Azure integration:
* Experiment with different voice types to find the best fit for your use case.
* Consider the language and accent requirements of your project when selecting voices.
* Monitor your API usage to manage costs effectively.
## Troubleshooting
If you encounter issues with the Azure integration, try these steps:
1. Verify that your API key is correct and active.
2. Ensure you've selected the correct region in Aikeedo that matches your Azure Speech service resource.
3. Check your Azure subscription for any usage limits or restrictions.
4. Confirm you have sufficient credit balance in your Azure account.
5. For voice-specific issues, verify that your account has access to the required voice types.
6. If you receive error messages related to authentication or API calls, double-check your Azure resource configuration.
Regularly review your Azure usage and available voice options to ensure smooth integration with Aikeedo.
Remember to review Microsoft Azure's usage policies and pricing to ensure compliance and manage costs effectively as you scale your text-to-speech integration.
# Claude AI Integration
Source: https://docs.aikeedo.com/integrations/claude
Integrate Anthropic Claude AI models (Claude Sonnet, Opus, Haiku) into Aikeedo for advanced chat, content generation, and coding assistance.
## Introduction
Claude AI integration provides access to Anthropic's advanced language models, known for strong performance in content generation, coding assistance, and complex reasoning tasks.
## Setting Up the Integration
Follow these steps to connect Claude AI with your Aikeedo platform:
### Step 1: Obtain Your Claude AI API Key
1. If you don't have an Anthropic account, [sign up here](https://www.anthropic.com) or contact their sales team for API access.
2. Once you have access, navigate to your Anthropic dashboard.
3. Locate and copy your API key—you'll need this for Aikeedo.
Keep your API key secure and confidential. It grants access to Claude AI
services and should not be shared publicly.
### Step 2: Configure Aikeedo
1. Log in to your Aikeedo admin panel.
2. Navigate to **Settings > Anthropic / Claude AI**.
3. Paste your Claude AI API key into the "API Key" field.
4. Click **Save changes** to activate the integration.
Great job! Claude AI is now integrated with your Aikeedo platform.
## Custom API Keys (BYOK)
Aikeedo supports Bring Your Own Key (BYOK) functionality for Claude AI integration:
* **Workspace-level API keys**: Workspace owners can provide their own Claude AI API key
* **System override**: When configured, the workspace-specific API key takes precedence over the system-wide API key
* **Credit management**: Custom API keys bypass workspace credit deductions for Claude AI services
* **Subscription requirement**: A valid subscription plan and credit balance are still required for other features and API services
BYOK is particularly useful for organizations that want to manage their own
Claude AI billing and usage directly. For detailed information about BYOK
configuration and setup, see the [BYOK documentation](/advanced/byok).
## Aikeedo Tools Powered by Claude AI
Claude AI integration enhances the following Aikeedo tools:
1. **Chat**: Engage in sophisticated, context-aware conversations with users.
2. **Writer**: Generate high-quality, nuanced content for various purposes.
3. **Coder**: Receive advanced coding assistance, explanations, and debugging help.
## Best Practices
To maximize your Claude AI integration:
* Experiment with different models to find the best balance of performance and efficiency for your use case.
* Provide clear, detailed instructions to get the most accurate and relevant outputs.
* Leverage Claude's ability to handle multi-step tasks by breaking down complex problems.
* Regularly review and update your usage to align with Anthropic's evolving best practices.
## Troubleshooting
If you encounter issues with the Claude AI integration:
1. **API Key Issues**:
* Verify that your API key is correct and active
* Check your Anthropic account for any usage limits or restrictions
* Ensure your Aikeedo platform is up to date
2. **Model Access and Quota Issues**:
* If you receive error messages related to model access or quotas, verify your account status with Anthropic
* Ensure your Anthropic account has sufficient credits and the correct billing setup for the models you're trying to use
3. **BYOK Issues**:
* If using custom API keys, ensure the workspace-specific key is valid and active
* Verify that the custom key has the necessary permissions for required models
* For comprehensive BYOK troubleshooting and configuration details, refer to the [BYOK documentation](/advanced/byok)
Remember to review Anthropic's usage policies and pricing to ensure compliance
and manage costs effectively as you scale your Claude AI integration.
# Clipdrop Integration
Source: https://docs.aikeedo.com/integrations/clipdrop
Enhance your Aikeedo platform with Clipdrop's advanced image generation capabilities. This guide walks you through setting up and leveraging Clipdrop's powerful AI models for creating unique and high-quality images.
## Important Notice
Clipdrop uses Stability AI under the hood for its image generation capabilities. For optimal performance and direct access to the latest features, we highly recommend using the Stability AI integration instead of Clipdrop.
Learn how to set up and use Stability AI directly in Aikeedo for advanced image generation.
## Introduction
Aikeedo's Clipdrop integration unlocks advanced image generation capabilities for your platform. With access to Clipdrop's cutting-edge AI models, you can significantly enhance your Imagine tool, allowing users to create unique and high-quality images from text descriptions.
## Setting Up the Integration
Follow these steps to connect Clipdrop with your Aikeedo platform:
### Step 1: Obtain Your Clipdrop API Key
1. If you don't have a Clipdrop account, [sign up here](https://clipdrop.co/).
2. Once logged in, navigate to your Clipdrop dashboard.
3. Look for the API section or API key management area.
4. Generate a new API key if you don't already have one.
5. Copy your API key—you'll need this for Aikeedo.
Keep your API key secure and confidential. It grants access to Clipdrop services and should not be shared publicly.
### Step 2: Configure Aikeedo
1. Log in to your Aikeedo admin panel.
2. Navigate to **Settings > Clipdrop**.
3. In the "API" section, enter your Clipdrop API key in the "API Key" field.
4. Click **Save changes** to activate the integration.
Great job! Clipdrop is now integrated with your Aikeedo platform.
## Aikeedo Tools Powered by Clipdrop
Clipdrop integration enhances the following Aikeedo tool:
1. **Imagine**: Create unique and high-quality images from text descriptions using Clipdrop's advanced AI models.
## Best Practices
To make the most of your Clipdrop integration:
* Provide clear and detailed text prompts for optimal image generation results.
* Experiment with different prompt styles to find what works best for your needs.
* Consider the style and complexity requirements of your project when crafting prompts.
* Monitor your API usage to manage costs effectively.
* Regularly update your integration to access the latest features and improvements.
## Troubleshooting
If you encounter issues with the Clipdrop integration, try these steps:
1. Verify that your API key is correct and active.
2. Check your Clipdrop account for any usage limits or restrictions.
3. Ensure your Aikeedo platform is up to date.
4. If you receive error messages related to API access or quotas, verify your account status with Clipdrop.
5. If you experience slow response times, consider optimizing your prompts or checking your network connection.
Regularly review your Clipdrop usage to ensure smooth integration with Aikeedo.
Remember to review Clipdrop's usage policies and pricing to ensure compliance and manage costs effectively as you scale your image generation integration.
# AWS S3
Source: https://docs.aikeedo.com/integrations/cloud-storage/aws-s3
Configure AWS S3 cloud storage for file uploads and AI-generated content in Aikeedo. Industry-standard object storage with high durability and availability.
## Overview
AWS S3 (Simple Storage Service) is Amazon's industry-standard object storage service, offering high durability, availability, and scalability. It's one of the most popular choices for cloud storage due to its reliability and extensive feature set.
**Key features:**
* **High durability** - 99.999999999% (11 9's) durability
* **Global availability** - Multiple regions worldwide
* **Scalable storage** - Virtually unlimited storage capacity
* **Security features** - Encryption, access controls, and compliance
* **Integration ecosystem** - Works with thousands of AWS services
* **S3-compatible API** - Easy integration with existing tools
## Prerequisites
Before configuring AWS S3:
1. **AWS Account** - Create an account at [aws.amazon.com](https://aws.amazon.com)
2. **S3 Bucket** - Create a bucket for your files
3. **IAM User** - Create a user with S3 permissions
4. **API Credentials** - Generate access key and secret key
5. **Domain** - Optional custom domain for CloudFront CDN
## Configuration Steps
In your AWS Console:
1. Go to [**S3** service](https://console.aws.amazon.com/s3/home)
2. Select your preferred region from the region selector in the top-right corner
3. Click **Create bucket**
4. Choose a unique bucket name (e.g., `your-app-storage`)
5. Use default configuration (sufficient for most use cases)
6. Click **Create bucket**
Bucket names must be globally unique across all AWS accounts. Names must be 3-63 characters long, contain only lowercase letters, numbers, dots, and hyphens, and cannot start or end with a dot or hyphen.
Create an IAM user with S3 permissions:
1. Go to **IAM** > **Users** > **Create user**
2. Enter username (e.g., `aikeedo-storage`)
3. Leave **"Provide user access to the AWS Management Console"** unchecked (programmatic access only)
4. Click **Next**
5. Select **"Attach policies directly"**
6. Search for and select **AmazonS3FullAccess** policy
7. Click **Next** to review, then **Create user**
8. Go to the user's **Security credentials** tab
9. Click **Create access key**
10. Select **"Application running outside AWS"** as the use case
11. Click **Next** to proceed
12. Copy the **Access key ID** and **Secret access key**
13. Save credentials securely
Set up CORS for your domain:
1. Go to your S3 bucket
2. Click **Permissions** tab
3. Scroll to **Cross-origin resource sharing (CORS)**
4. Click **Edit** and add this configuration:
```json theme={null}
[
{
"AllowedHeaders": ["*"],
"AllowedMethods": ["GET"],
"AllowedOrigins": ["https://yourdomain.com", "https://www.yourdomain.com"]
}
]
```
5. Click **Save changes**
Replace `yourdomain.com` with your actual domain. For development, you can use `*` for AllowedOrigins, but this is not recommended for production.
In your admin panel:
1. Go to **Settings** > **Cloud storage** > **AWS S3**
2. Toggle **Status** to **Enabled**
3. Enter **Endpoint**:
* Go to your S3 bucket in AWS Console
* Copy the **Bucket website endpoint** or use format: `https://your-bucket.s3.region.amazonaws.com/`
* For example: `https://my-app-storage.s3.us-east-1.amazonaws.com/`
4. Select **Region** from dropdown (must match your bucket's region)
5. Enter **Custom domain** (optional CloudFront CDN domain)
6. Enter **Bucket name**: Your S3 bucket name
7. Enter **Path prefix** (optional subfolder)
8. Enter **Access key**: Your IAM access key ID
9. Enter **Secret key**: Your IAM secret access key
10. Click **Save changes**
Enable AWS S3 as your storage provider:
1. Go to **Settings** > **File storage**
2. In the **Adapter** dropdown, select **AWS S3**
3. Configure **Group files** and **Secure URLs** as needed
4. Click **Save changes**
## Configuration Fields
**Required fields:**
* **Endpoint** - S3 bucket endpoint URL (e.g., `https://your-bucket.s3.region.amazonaws.com/`)
* **Region** - AWS region where your bucket is located
* **Bucket name** - Name of your S3 bucket
* **Access key** - IAM user access key ID for authentication
* **Secret key** - IAM user secret access key for authentication
**Optional fields:**
* **Custom domain** - Custom domain for CloudFront CDN (if you have CloudFront distribution set up)
* **Path prefix** - Optional subfolder within your bucket for organizing files
## Troubleshooting
**Access denied errors:**
* Verify IAM user has correct permissions for the specific bucket
* Check bucket policy settings and public access settings
* Ensure access keys are valid and not expired
* Verify bucket name matches exactly (case-sensitive)
**CORS issues:**
* Check CORS configuration in S3 bucket permissions
* Verify allowed origins include your domain (with https\://)
* Ensure allowed methods include GET (sufficient for Aikeedo)
* Wait a few minutes for CORS changes to propagate
**Files not uploading:**
* Verify bucket name and region are correct
* Check network connectivity to AWS
* Ensure bucket exists and is accessible
* Verify endpoint URL format is correct
* Check if bucket has any restrictions or policies blocking uploads
**Performance issues:**
* Consider using CloudFront CDN for better global performance
* Check if you're using the correct region for your users
* Monitor AWS CloudWatch for any service issues
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
# Cloudflare R2
Source: https://docs.aikeedo.com/integrations/cloud-storage/cloudflare-r2
Configure Cloudflare R2 cloud storage for file uploads and AI-generated content in Aikeedo. S3-compatible storage with zero egress fees.
## Overview
Cloudflare R2 is an S3-compatible object storage service that offers zero egress fees, making it cost-effective for applications with high data transfer requirements. It's integrated with Cloudflare's global network for optimal performance.
## Prerequisites
Before configuring Cloudflare R2:
1. **Cloudflare Account** - Create an account at [cloudflare.com](https://cloudflare.com)
2. **R2 Bucket** - Create a bucket for your files
3. **API Token** - Generate R2 API credentials
4. **Domain** - Optional custom domain setup
## Configuration Steps
In your Cloudflare dashboard:
1. Go to **R2 Object Storage** in the left sidebar
2. Click **Create bucket**
3. Enter a unique bucket name (e.g., `your-app-storage`)
4. Choose location:
* **Automatic** (recommended) - Cloudflare chooses optimal location
* **Specify jurisdiction** - For data residency requirements
5. Select storage class:
* **Standard** (recommended) - For objects accessed at least once a month
* **Infrequent Access** - For objects accessed less than once a month
6. Click **Create bucket**
Bucket names must be globally unique across all Cloudflare accounts and are permanent once created. Choose a name that reflects your application.
By default, buckets are not publicly accessible. You can access objects through the API or by binding the bucket to a Worker. Bucket access can be changed to Public at any time.
Create R2 API credentials:
1. Go to **R2 Object Storage** in the left sidebar
2. Click **Manage API tokens**
3. Choose token type:
* **Account API token** (recommended for production) - Tied to the account, remains active even when you leave the organization
* **User API token** (for development) - Tied to your user account, becomes inactive if you leave the organization
4. Click **Create Account API token** or **Create User API token**
5. Configure the token:
* **Token name**: Enter a descriptive name (e.g., `aikeedo-storage`)
* **Permissions**: Select **Object Read & Write** (allows read, write, and list objects in specific buckets)
* **Specify bucket(s)**: Choose **Apply to specific buckets only** and select your bucket
* **TTL**: Set to **Forever** or your preferred duration
6. Click **Create User API Token** (or **Create Account API Token**)
7. Copy the **Access Key ID** and **Secret Access Key** from the success page
8. Save credentials securely
You will not be able to access your Secret Access Key again after this step. Copy and record both values to avoid losing them.
The endpoint format is: `https://.r2.cloudflarestorage.com/`. You can copy this directly from your R2 bucket settings.
Set up CORS for your domain:
1. Go to your R2 bucket
2. Click **Settings** tab
3. Scroll to **CORS Policy** section
4. Click **Edit** button
5. In the JSON editor, configure the CORS policy:
```json theme={null}
[
{
"AllowedOrigins": [
"https://yourdomain.com",
"https://www.yourdomain.com"
],
"AllowedMethods": [
"GET"
]
}
]
```
6. Click **Save**
Replace `yourdomain.com` with your actual domain. For development, you can use `["*"]` for AllowedOrigins, but this is not recommended for production.
The CORS policy uses JSON format in Cloudflare R2. Make sure your JSON syntax is valid before saving.
In your admin panel:
1. Go to **Settings** > **Cloud storage** > **Cloudflare R2**
2. Toggle **Status** to **Enabled**
3. Enter **S3 API Endpoint**:
* Go to your R2 bucket settings in Cloudflare dashboard
* Copy the **S3 API** URL from the General section
* Paste it into the S3 API Endpoint field
4. Enter **Public access domain**:
* Use your custom domain (e.g., `https://cdn.yourdomain.com`) or R2.dev subdomain
* **Must include the `https://` protocol**
* If you've enabled Secure URLs, include the S3 API endpoint here
* Otherwise, URLs will be public
While Cloudflare R2 URLs are publicly accessible by design, Aikeedo ensures security by using hard-to-guess unique addresses for all uploaded files.
5. Enter **Bucket name**: Your R2 bucket name
6. Enter **Path prefix** (optional subfolder)
7. Enter **Access key ID**: Your R2 access key ID
8. Enter **Secret access key**: Your R2 secret access key
9. Click **Save changes**
Enable Cloudflare R2 as your storage provider:
1. Go to **Settings** > **File storage**
2. In the **Adapter** dropdown, select **Cloudflare R2**
3. Configure **Group files** and **Secure URLs** as needed
4. Click **Save changes**
## Configuration Fields
**Required fields:**
* **S3 API Endpoint** - R2 S3 API endpoint URL (copy from bucket settings General section)
* **Public access domain** - Public domain for accessing files (must include `https://` protocol, use custom domain or R2.dev subdomain)
* **Bucket name** - Name of your R2 bucket
* **Access key ID** - R2 access key ID for authentication
* **Secret access key** - R2 secret access key for authentication
**Optional fields:**
* **Path prefix** - Optional subfolder within your bucket for organizing files
## Troubleshooting
**Access denied errors:**
* Verify API token has correct permissions (Object Read & Write recommended)
* Check bucket name matches exactly
* Ensure S3 API endpoint format is correct: `https://.r2.cloudflarestorage.com/`
* Verify access keys are valid and not expired
* Check if token is scoped to the correct bucket
**CORS issues:**
* Check CORS configuration in bucket settings using the JSON editor
* Verify allowed origins include your domain (with https\://)
* Ensure allowed methods include GET (sufficient for Aikeedo)
* Validate JSON syntax is correct before saving
**Files not uploading:**
* Verify bucket name and endpoint are correct
* Check network connectivity to Cloudflare
* Ensure bucket exists and is accessible
* Verify API token permissions are sufficient
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
# Digital Ocean Spaces
Source: https://docs.aikeedo.com/integrations/cloud-storage/digital-ocean-spaces
Configure Digital Ocean Spaces cloud storage for file uploads and AI-generated content in Aikeedo. S3-compatible storage with simple pricing.
## Overview
Digital Ocean Spaces is an S3-compatible object storage service that offers simple pricing, easy setup, and global CDN integration. It's an excellent choice for developers who want AWS S3 compatibility without the complexity of AWS services.
**Key features:**
* **Predictable pricing** - Simple, transparent pricing model
* **Built-in CDN** - Global content delivery network included
* **Unlimited buckets** - Create up to 100 buckets per subscription
* **Custom subdomain** - Use your own domain for file delivery
* **S3-compatible API** - Easy integration with existing tools
## Prerequisites
Before configuring Digital Ocean Spaces:
1. **DigitalOcean Account** - Create an account at [digitalocean.com](https://digitalocean.com)
2. **Space** - Create a Space for your files
3. **API Keys** - Generate Spaces access keys
4. **Domain** - Optional custom domain for CDN
## Configuration Steps
In your DigitalOcean control panel:
1. Go to **Spaces Object Storage** in the left sidebar
2. Click **Create Bucket**
3. Choose a datacenter region (e.g., Frankfurt FRA1, San Francisco SFO3)
4. Optionally enable **CDN** for faster delivery
5. Enter a unique bucket name (e.g., `your-app-files`)
6. Select a project (e.g., `aikeedo`)
7. Click **Create a Spaces Bucket**
Bucket names must be globally unique across all DigitalOcean accounts. Names must be in lowercase, 3-63 characters long, and may contain dashes. **Cannot contain dots (.) or other special characters.**
Create API keys for Spaces access:
1. Go to **Spaces Object Storage** in the left sidebar
2. Click the **Access Keys** tab
3. Click **Generate New Key**
4. In the **Create Access Key** dialog:
* Select **Limited Access** (recommended) or **Full Access**
* If using Limited Access:
* Select specific buckets from the list
* Choose **Read/Write/Delete** permissions for each bucket (required for Aikeedo)
* Enter a name for the key (e.g., `aikeedo-access`)
* Note: Key names can only contain alphanumeric characters, dashes and periods
5. Click **Create Access Key**
6. Copy the **Access Key** and **Secret Key**
7. Save credentials securely
API keys provide access to your Spaces. Store them securely.
Set up CORS for your domain:
1. Go to your Space settings
2. Click **Settings** tab
3. Scroll to **CORS Configurations**
4. Click **Add a Rule** to open **Advanced CORS Options**
5. Configure the CORS settings:
* **Origin**: `https://yourdomain.com` (or `*` for all origins)
* **Allowed Methods**: Check `GET` (sufficient for Aikeedo)
* **Allowed Headers**: No special headers required for Aikeedo
* **Access Control Max Age**: `3000` (or `0` for no caching)
6. Click **Save CORS Configuration**
CDN and CORS configurations may not apply immediately. Wait a few moments and try again if you encounter issues.
In your admin panel:
1. Go to **Settings** > **Cloud storage** > **Digital Ocean Spaces**
2. Toggle **Status** to **Enabled**
3. Enter **Origin endpoint**:
* Go to your Space in DigitalOcean
* Copy the **Origin Endpoint** URL (e.g., `https://cdnaikeedocom.fra1.digitaloceanspaces.com`)
* Paste it into the Origin endpoint field
4. Enter **Custom domain** (optional CDN domain)
5. Enter **Bucket name**: Your Space name
6. Enter **Path prefix** (optional subfolder)
7. Enter **Access key**: Your Spaces access key
8. Enter **Secret key**: Your Spaces secret key
9. Click **Save changes**
Enable Digital Ocean Spaces as your storage provider:
1. Go to **Settings** > **File storage**
2. In the **Adapter** dropdown, select **Digital Ocean Spaces**
3. Configure **Group files** and **Secure URLs** as needed
4. Click **Save changes**
## Configuration Fields
**Required fields:**
* **Origin endpoint** - Spaces endpoint URL (e.g., `https://your-space.region.digitaloceanspaces.com`)
* **Bucket name** - Name of your DigitalOcean Space
* **Access key** - Spaces access key for authentication
* **Secret key** - Spaces secret key for authentication
**Optional fields:**
* **Custom domain** - Custom domain for CDN (if you have a custom domain for your Space)
* **Path prefix** - Optional subfolder within your Space for organizing files
## Troubleshooting
**Access denied errors:**
* Verify API keys are correct and active
* Check Space name matches exactly
* Ensure Space is not restricted
**CORS issues:**
* Check CORS configuration in Space settings
* Verify allowed origins include your domain
* Ensure allowed methods include required operations
**Files not uploading:**
* Verify region in endpoint URL
* Check network connectivity to DigitalOcean
* Ensure Space exists and is accessible
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
# MinIO
Source: https://docs.aikeedo.com/integrations/cloud-storage/minio
Configure MinIO self-hosted object storage for file uploads and AI-generated content in Aikeedo. Complete control over your data with S3-compatible API.
## Overview
MinIO AIStor is a high-performance, S3-compatible object storage server that you can self-host. It gives you complete control over your data while maintaining compatibility with S3 APIs, making it perfect for private cloud deployments or when you need full data sovereignty.
**Key features:**
* **Self-hosted** - Complete control over your data and infrastructure
* **S3-compatible API** - Easy integration with existing S3 tools and libraries
* **High performance** - Optimized for speed and efficiency
* **Data sovereignty** - Keep your data on your own infrastructure
* **Enterprise features** - Advanced security, monitoring, and management
MinIO integration is available only if the Cloud Storage plugin is purchased from the [Aikeedo Marketplace](https://aikeedo.com/marketplace/).
## Prerequisites
Before configuring MinIO:
1. **Cloud Storage Plugin** - Purchase from [Aikeedo Marketplace](https://aikeedo.com/marketplace/)
2. **MinIO AIStor Installation** - Follow the [official installation guide](https://docs.min.io/enterprise/aistor-object-store/)
3. **Bucket** - Create a bucket for your files
4. **Access Keys** - Generate API credentials
5. **Network Access** - Ensure Aikeedo can reach MinIO
## Configuration Steps
Open the AIStor web console:
1. Navigate to your AIStor console URL
2. Login with your admin credentials
3. Ensure you have the necessary permissions for bucket and access key management
For detailed installation and setup instructions, refer to the [official AIStor installation guide](https://docs.min.io/enterprise/aistor-object-store/).
Create a bucket for your files:
1. In the AIStor console, go to **Buckets**
2. Click **Create Bucket**
3. Enter bucket name (e.g., `aikeedo-files`)
4. Choose access policy (Private recommended)
5. Click **Create Bucket**
For detailed bucket management, refer to the [official bucket management documentation](https://docs.min.io/enterprise/aistor-object-store/administration/console/managing-objects/).
Generate API credentials:
1. Go to **Access Keys** in the AIStor console
2. Click **Create Access Key**
3. Enter a name for the key (e.g., `aikeedo-access`)
4. Copy the **Access Key** and **Secret Key**
5. Save credentials securely
For detailed access management, refer to the [official IAM documentation](https://docs.min.io/enterprise/aistor-object-store/administration/iam/access/).
In your admin panel:
1. Go to **Settings** > **Cloud storage** > **MinIO**
2. Toggle **Status** to **Enabled**
3. Enter **Origin endpoint**: `http://your-server:port` (use your configured port)
4. Enter **Custom domain** (optional domain for MinIO)
5. Enter **Bucket name**: Your MinIO bucket name
6. Enter **Path prefix** (optional subfolder)
7. Enter **Access key**: Your MinIO access key
8. Enter **Secret key**: Your MinIO secret key
9. Click **Save changes**
## Configuration Fields
**Required fields:**
* **Origin endpoint** - MinIO server endpoint URL (e.g., `http://your-server:port`)
* **Bucket name** - Name of your MinIO bucket
* **Access key** - MinIO access key for authentication
* **Secret key** - MinIO secret key for authentication
**Optional fields:**
* **Custom domain** - Custom domain for serving files through reverse proxy
* **Path prefix** - Optional subfolder within your bucket for organizing files
For detailed server configuration options, refer to the [official core settings documentation](https://docs.min.io/enterprise/aistor-object-store/reference/aistor-server/settings/core/?tab=object-store-cli-options-configuration-setting).
## Troubleshooting
**Connection refused:**
* Check if MinIO server is running
* Verify the configured port is open and accessible
* Check firewall settings
* Ensure correct endpoint URL
**Access denied errors:**
* Verify access keys are correct
* Check bucket name matches exactly
* Ensure bucket exists and is accessible
* Verify network connectivity
**Files not uploading:**
* Check server resources (CPU, RAM, disk)
* Verify network latency between Aikeedo and MinIO
* Ensure data directory is accessible
* Check for disk errors
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
# Cloud Storage
Source: https://docs.aikeedo.com/integrations/cloud-storage/overview
Configure cloud storage providers for file uploads and AI-generated content in Aikeedo. Choose from AWS S3, Digital Ocean Spaces, Wasabi, Cloudflare R2, or MinIO.
## Overview
The Cloud Storage plugin extends Aikeedo with support for multiple cloud storage providers, enabling you to store user uploads and AI-generated files in the cloud instead of local storage. This improves performance, scalability, and reliability for your AI SaaS platform.
The Cloud Storage plugin is available for purchase from the [Aikeedo Marketplace](https://aikeedo.com/marketplace/).
## Supported Providers
The Cloud Storage plugin supports the following providers:
Amazon Web Services Simple Storage Service - Industry standard with high durability and availability.
S3-compatible storage with simple pricing and easy setup.
S3-compatible storage with zero egress fees.
High-performance cloud storage with S3-compatible API.
Self-hosted object storage server for complete control.
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
# Wasabi
Source: https://docs.aikeedo.com/integrations/cloud-storage/wasabi
Configure Wasabi cloud storage for file uploads and AI-generated content in Aikeedo. High-performance S3-compatible storage with competitive pricing.
## Overview
Wasabi is a high-performance cloud storage service that offers S3-compatible API with competitive pricing and no egress fees. It's designed for businesses that need reliable, fast storage without the complexity of traditional cloud providers.
**Key features:**
* **No egress fees** - Download as much as you want without additional charges
* **S3-compatible API** - Full AWS S3 API compatibility with additional features
* **Always consistent** - Immediate consistency for all operations (no eventual consistency)
* **11 9's durability** - Enterprise-grade reliability
* **Hot cloud storage** - Fast access to all data
* **Global availability** - Multiple regions worldwide
## Prerequisites
Before configuring Wasabi:
1. **Wasabi Account** - Create an account at [wasabi.com](https://wasabi.com)
2. **Bucket** - Create a bucket for your files
3. **Access Keys** - Generate API credentials
4. **Region** - Choose appropriate region
## Configuration Steps
In your Wasabi console:
1. On the Wasabi menu, click **Buckets**
2. In the upper right of the Console panel, click **Create Bucket**
3. Enter a unique DNS-compliant bucket name (e.g., `your-app-storage`)
4. Select the region where you want the bucket to reside
5. Click **Create Bucket** to create immediately, or click **Next** to configure additional properties
6. If continuing with setup, review bucket properties (versioning, logging, replication, tags) and click **Create Bucket**
Bucket names must be globally unique across all Wasabi accounts. Names must be 3-63 characters long, begin with a lowercase letter or number, and consist of lowercase letters, numbers, periods, and/or dashes. Cannot contain underscores, end with a dash, have consecutive periods, or use dashes adjacent to periods.
Generate API credentials:
1. Follow the steps in [Creating a User Account and Access Key](https://docs.wasabi.com/docs/creating-a-user-account-and-access-key#creating-a-user)
2. Create a new user account or use an existing one
3. Generate access keys for the user
4. Copy the **Access Key** and **Secret Key**
5. Save credentials securely
Access keys provide full access to your Wasabi account. Store them securely.
Set up CORS for your domain:
1. Go to your bucket settings
2. Click **Permissions** tab
3. Scroll to **CORS Configuration**
4. Click **Edit** button
5. In the JSON editor, configure the CORS policy:
```json theme={null}
[
{
"AllowedOrigins": [
"https://yourdomain.com",
"https://www.yourdomain.com"
],
"AllowedMethods": [
"GET"
],
"AllowedHeaders": [
"*"
],
"MaxAgeSeconds": 3000
}
]
```
6. Click **Save**
Wasabi uses JSON format for CORS configuration. Wasabi automatically provides CORS headers when an Origin header is present in requests, but you can also configure custom CORS policies for more specific control. For detailed CORS configuration, refer to the [official Wasabi CORS documentation](https://docs.wasabi.com/docs/cross-origin-resource-sharing-cors). Replace `yourdomain.com` with your actual domain.
The CORS policy uses JSON format in Wasabi. Make sure your JSON syntax is valid before saving.
In your admin panel:
1. Go to **Settings** > **Cloud storage** > **Wasabi**
2. Toggle **Status** to **Enabled**
3. Enter **Endpoint**: `https://s3..wasabisys.com` (replace `` with your actual region code)
4. Select **Region** from dropdown
5. Enter **Custom domain** (optional CDN domain)
6. Enter **Bucket name**: Your Wasabi bucket name
7. Enter **Path prefix** (optional subfolder)
8. Enter **Access key**: Your Wasabi access key
9. Enter **Secret key**: Your Wasabi secret key
10. Click **Save changes**
Enable Wasabi as your storage provider:
1. Go to **Settings** > **File storage**
2. In the **Adapter** dropdown, select **Wasabi**
3. Configure **Group files** and **Secure URLs** as needed
4. Click **Save changes**
## Configuration Fields
**Required fields:**
* **Endpoint** - Wasabi S3 endpoint URL (e.g., `https://s3.us-east-1.wasabisys.com`)
* **Region** - Wasabi region where your bucket is located
* **Bucket name** - Name of your Wasabi bucket
* **Access key** - Wasabi access key for authentication
* **Secret key** - Wasabi secret key for authentication
**Optional fields:**
* **Custom domain** - Custom domain for serving files through CDN
* **Path prefix** - Optional subfolder within your bucket for organizing files
## Troubleshooting
**Access denied errors:**
* Verify access keys are correct and active
* Check bucket name matches exactly
* Ensure bucket exists in the correct region
* Verify endpoint URL includes correct region
**CORS issues:**
* Check CORS configuration in bucket settings
* Verify allowed origins include your domain (with https\://)
* Ensure allowed methods include GET (sufficient for Aikeedo)
* Test with browser developer tools
**Files not uploading:**
* Verify bucket name and region are correct
* Check network connectivity to Wasabi
* Ensure bucket exists and is accessible
* Verify endpoint URL format is correct
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
# Cohere AI Integration
Source: https://docs.aikeedo.com/integrations/cohere
Enhance your Aikeedo platform with Cohere's advanced language AI models. This guide walks you through setting up and leveraging Cohere's powerful capabilities for chat, content creation, and coding assistance.
## Introduction
Integrating Cohere AI into your Aikeedo platform unlocks a range of powerful language AI capabilities. Cohere's models excel in natural language understanding, generation, and task completion, making them ideal for enhancing your chat, writing, and coding tools.
## Setting Up the Integration
Follow these steps to connect Cohere AI with your Aikeedo platform:
### Step 1: Obtain Your Cohere API Key
1. If you don't have a Cohere account, [sign up here](https://cohere.ai/).
2. Once logged in, navigate to your Cohere dashboard.
3. Locate and copy your API key from the [API Keys page](https://dashboard.cohere.com/api-keys)—you'll need this for Aikeedo.
Keep your API key secure and confidential. It grants access to Cohere AI services and should not be shared publicly.
### Step 2: Configure Aikeedo
1. Log in to your Aikeedo admin panel.
2. Navigate to **Settings > Cohere AI**.
3. Paste your Cohere API key into the designated "API Key" field.
4. Click **Save changes** to activate the integration.
Excellent! Cohere AI is now integrated with your Aikeedo platform.
## Aikeedo Tools Powered by Cohere AI
Cohere AI integration enhances the following Aikeedo tools:
1. **Chat**: Engage in intelligent, context-aware conversations with users.
2. **Writer**: Generate high-quality content for various purposes.
3. **Coder**: Receive coding assistance, explanations, and suggestions.
## Best Practices
To maximize your Cohere AI integration:
* Experiment with different models to find the best balance of performance and efficiency for your use case.
* Provide clear and specific prompts to get the most accurate and relevant outputs.
* Utilize Cohere's strength in understanding context by providing relevant background information in your prompts.
* Regularly review and update your usage to align with Cohere's evolving best practices and model capabilities.
## Troubleshooting
If you encounter issues with the Cohere AI integration:
1. Verify that your API key is correct and active.
2. Check your Cohere account for any usage limits or restrictions.
3. Ensure your Aikeedo platform is up to date.
4. If you receive error messages related to model access or quotas, verify your account status with Cohere.
Remember to review Cohere's usage policies and pricing to ensure compliance and manage costs effectively as you scale your Cohere AI integration.
# CurrencyAPI Integration
Source: https://docs.aikeedo.com/integrations/currency-api
Integrate CurrencyAPI for real-time currency exchange rates in Aikeedo to support multi-currency pricing and automatic conversion.
## Introduction
CurrencyAPI integration enables automatic currency conversion in your Aikeedo platform. This is essential when you accept payments in multiple currencies but your payment gateway only supports specific currencies, or when you want to display prices in users' local currencies.
## Prerequisites
Before you begin, ensure you have:
* An active [CurrencyAPI account](https://currencyapi.com/)
* Access to your Aikeedo admin panel
* Multi-currency payment requirements
## Why Use a Currency Rate Provider?
Using a currency rate provider like CurrencyAPI is **highly recommended** for several reasons:
1. **MRR Calculation**: Monthly Recurring Revenue (MRR) calculations depend on accurate exchange rates
2. **Analytics Accuracy**: Revenue reporting and analytics require proper currency conversion
3. **Multi-Currency Support**: Enable pricing and payments in multiple currencies
4. **Automatic Conversion**: Seamlessly convert between currencies during checkout
The default currency rate provider is set to "None" (null provider). Without a currency rate provider, features like MRR calculation will not work correctly, and multi-currency support will be limited.
## How CurrencyAPI Works in Aikeedo
CurrencyAPI provides real-time exchange rates that Aikeedo uses to:
1. **Automatic Currency Conversion**: Convert between currencies during checkout
2. **Multi-Currency Support**: Display prices in different currencies
3. **Payment Gateway Compatibility**: Convert to supported currencies when processing payments
4. **Accurate Financial Metrics**: Calculate MRR and other revenue metrics correctly
If your selected currency isn't directly supported by your payment gateway (Stripe or PayPal), Aikeedo automatically converts it to a supported currency using CurrencyAPI rates during checkout.
### Update Frequency
Aikeedo fetches currency rates from CurrencyAPI **once every 4 hours**, which means:
* **6 API requests per day**
* **\~180 API requests per month**
The free tier offers 300 requests per month, which is more than sufficient for Aikeedo's usage pattern. You don't need a paid plan for standard use!
## Step-by-Step Setup
1. Visit [CurrencyAPI.com](https://currencyapi.com/)
2. Click "Get Free API Key" or "Sign Up"
3. Complete the registration process
4. Verify your email address
CurrencyAPI offers a free tier with 300 requests per month, which is suitable for testing and small-scale deployments.
1. Log in to your CurrencyAPI dashboard
2. Navigate to your account dashboard
3. Locate your API key (it will be displayed prominently)
4. Copy the API key for use in Aikeedo
Keep your API key secure and confidential. Do not share it publicly or commit it to version control.
1. Log in to your Aikeedo admin panel
2. Navigate to **Settings > Billing**
3. Locate the "Currency Rate Provider" dropdown
4. Select **CurrencyAPI** from the options (default is "None")
5. Enter your CurrencyAPI API key in the "API Key" field
6. Click "Save changes" to activate the integration
The default currency rate provider is "None" (null provider). Changing it to CurrencyAPI enables proper MRR calculations and multi-currency support.
CurrencyAPI is now integrated with your Aikeedo platform!
1. Go to **Settings > General** (or Billing)
2. Set a currency that's not directly supported by your payment gateway
3. Create a test subscription or purchase
4. Verify that currency conversion happens correctly during checkout
Monitor your CurrencyAPI dashboard to see API requests and ensure the integration is working properly.
## Use Cases
### Multi-Currency Pricing
Display subscription prices in multiple currencies while accepting payments through a single payment gateway.
**Example:**
* Your payment gateway (Stripe) supports USD, EUR, GBP
* You want to offer pricing in JPY, AUD, CAD
* CurrencyAPI converts these currencies to USD during checkout
### Local Currency Display
Show prices in users' local currencies for better user experience, even if payments are processed in a different currency.
### Exchange Rate Management
Keep exchange rates up-to-date automatically without manual intervention, ensuring fair pricing across all currencies.
## Configuration Options
### Default Currency
Set your default currency in **Settings > Billing**:
```
Settings > Billing > Default Currency
```
This is the base currency for your platform. All other currencies will be converted relative to this currency.
### Supported Currencies
CurrencyAPI supports 150+ world currencies, including:
* USD (US Dollar)
* EUR (Euro)
* GBP (British Pound)
* JPY (Japanese Yen)
* AUD (Australian Dollar)
* CAD (Canadian Dollar)
* CHF (Swiss Franc)
* CNY (Chinese Yuan)
* And many more...
View the complete list at [CurrencyAPI Currencies](https://currencyapi.com/docs/currencies).
## API Rate Limits
CurrencyAPI offers different pricing tiers:
* **300 requests per month**
* **Perfect for Aikeedo**: With updates every 4 hours, Aikeedo uses only \~180 requests per month
* Suitable for production deployments
* No credit card required
The free tier is **sufficient for most Aikeedo installations**, including production environments!
* Higher request limits (5,000 to 100,000+ per month)
* More frequent update options
* Consider only if you need custom update frequencies
* [View pricing](https://currencyapi.com/pricing)
Since Aikeedo fetches rates every 4 hours (180 API calls/month), the free tier provides a comfortable buffer. You only need a paid tier if you modify the update frequency or have multiple Aikeedo installations using the same API key.
## How Aikeedo Uses Exchange Rates
1. **Update Schedule**: Rates are fetched from CurrencyAPI every 4 hours (6 times per day)
2. **Caching**: Exchange rates are cached between updates to minimize API requests
3. **MRR Calculations**: Cached rates are used for calculating Monthly Recurring Revenue and other financial metrics
4. **Checkout Conversion**: When a user checks out:
* Their selected currency is checked against payment gateway support
* If unsupported, CurrencyAPI rates convert it to a supported currency
* Payment is processed in the supported currency
5. **Accuracy**: Regular updates ensure fair and accurate conversions while staying within free tier limits
With updates every 4 hours, Aikeedo balances rate accuracy with API efficiency, using only \~180 requests per month.
## Troubleshooting
### Exchange Rates Not Updating
**Symptoms:**
* Prices showing outdated exchange rates
* Currency conversion seems incorrect
**Solution:**
1. Verify your CurrencyAPI key is correct
2. Check that you haven't exceeded your API rate limit
3. Clear the application cache from the admin panel Status page
4. Verify CurrencyAPI service status at [status.currencyapi.com](https://status.currencyapi.com/)
### Currency Conversion Not Working
**Symptoms:**
* Checkout fails with currency errors
* Prices not converting at checkout
**Solution:**
1. Ensure CurrencyAPI is selected as the Currency Rate Provider
2. Verify your API key is entered correctly
3. Check that the default currency is set in **Settings > Billing**
4. Ensure the currencies you're using are supported by CurrencyAPI
5. Review error logs for specific error messages
### API Key Invalid Error
**Symptoms:**
* Error message about invalid API key
* Currency conversion fails
**Solution:**
1. Double-check your API key in the CurrencyAPI dashboard
2. Ensure there are no extra spaces when pasting the key
3. Verify your CurrencyAPI account is active
4. Check if you've exceeded your API rate limit
## Best Practices
1. **Always Use a Currency Rate Provider**: Even for single-currency setups, enable CurrencyAPI for proper MRR calculations
2. **Start with Free Tier**: The free tier (300 requests/month) is sufficient for Aikeedo's usage (\~180 requests/month)
3. **Monitor API Usage**: Check your CurrencyAPI dashboard occasionally to ensure you're within limits
4. **Test Before Launch**: Test currency conversion with different currencies before going live
5. **Keep API Key Secure**: Store your API key securely and never commit it to version control
6. **Plan for Growth**: If you run multiple Aikeedo installations, consider a paid tier or use separate API keys
## Alternative: No Currency Rate Provider
The default setting is "None" (null provider), which means:
* All transactions use the default currency only
* No automatic conversion occurs
* Users must pay in the currency you specify
* **MRR calculations and revenue analytics will not work correctly**
* Multi-currency support is disabled
When set to "None," attempting to use currencies not supported by your payment gateway will result in checkout errors. Additionally, features that depend on currency conversion (like MRR calculation) will not function properly.
**Recommendation:** Even if you only accept one currency, setting up CurrencyAPI is highly recommended for accurate financial reporting and future flexibility. The free tier is sufficient and requires no ongoing costs.
## Related Guides
* [Billing Overview](/billing/overview) - Configure default currency and billing settings
* [Stripe Integration](/integrations/stripe) - Set up Stripe payment gateway
* [PayPal Integration](/integrations/paypal) - Set up PayPal payment gateway
* [Plans & Subscriptions](/billing/plans-snapshots-subscriptions) - Create pricing plans
## Additional Resources
* [CurrencyAPI Documentation](https://currencyapi.com/docs)
* [CurrencyAPI Pricing](https://currencyapi.com/pricing)
* [Supported Currencies List](https://currencyapi.com/docs/currencies)
* [CurrencyAPI Status Page](https://status.currencyapi.com/)
With CurrencyAPI integrated, your Aikeedo platform can now handle multi-currency transactions seamlessly!
# Custom Scripts Integration
Source: https://docs.aikeedo.com/integrations/custom-scripts
Enhance your Aikeedo platform with custom HTML, CSS, and JavaScript. This guide walks you through adding custom scripts and content to your Aikeedo website.
## Introduction
Aikeedo's Custom Scripts feature allows you to add custom HTML, CSS, and JavaScript to your platform. This powerful functionality enables you to extend the capabilities of your Aikeedo website, integrate additional tools, or customize the appearance and behavior of your site.
## Setting Up Custom Scripts
Follow these steps to add custom scripts to your Aikeedo platform:
1. Log in to your Aikeedo admin panel.
2. Navigate to Settings.
3. Find and click on "Script Tags" in the Integrations section.
4. Look for the "Custom tags" option.
## Configuration Options
In the Custom tags section, you'll see three main areas for adding custom content:
### Head Content
* This is where you can add custom `` tags, CSS links, or other content that belongs in the `` section of your HTML.
* Content added here will be injected right after the `` tag of your website.
### Body Content
* Use this area to add custom HTML, JavaScript, or other content that you want to appear in the main body of your website.
* Content added here will be injected right after the `` tag of your website.
### Footer Content
* This section is ideal for adding tracking scripts, analytics code, or other content that should appear at the end of your web pages.
* Content added here will be injected right before the closing `` tag of your website.
## Adding Custom Scripts
1. Decide which section (Head, Body, or Footer) is most appropriate for your custom content.
2. Enter your custom HTML, CSS, or JavaScript into the corresponding text area.
3. Click the "Save changes" button at the bottom of the page to apply your custom scripts.
Your custom scripts are now integrated with your Aikeedo platform!
## Best Practices
To make the most of the Custom Scripts feature:
* Test your custom scripts thoroughly before adding them to your live site.
* Use the appropriate section for each type of content (e.g., CSS in the Head, JavaScript in the Footer).
* Be cautious when adding third-party scripts, as they can affect your site's performance and security.
* Keep your custom scripts organized and commented for easy maintenance.
* Regularly review and update your custom scripts to ensure they're still necessary and functioning correctly.
Adding custom scripts can potentially break your website's functionality or compromise its security. Only add scripts from trusted sources and that you fully understand.
## Troubleshooting
If you experience issues after adding custom scripts:
1. Check your browser's console for any JavaScript errors.
2. Verify that your custom HTML is well-formed and doesn't conflict with existing page elements.
3. Ensure that any external resources (like CSS or JavaScript files) are accessible and loading correctly.
4. If your site's functionality is broken, try removing the custom scripts one by one to identify the problematic code.
5. Consider using browser developer tools to debug and test your custom scripts.
It's a good practice to keep a backup of your original configuration before making significant changes with custom scripts.
# ElevenLabs Integration
Source: https://docs.aikeedo.com/integrations/elevenlabs
Enhance your Aikeedo platform with ElevenLabs' advanced text-to-speech and voice AI capabilities. This guide walks you through setting up and leveraging ElevenLabs' powerful models for voice generation and audio processing.
## Introduction
Aikeedo's ElevenLabs integration unlocks a world of AI-powered voice capabilities for your platform. From natural-sounding text-to-speech to voice isolation, ElevenLabs' advanced models can enhance various aspects of your Aikeedo experience.
## Setting Up the Integration
Follow these simple steps to connect ElevenLabs with your Aikeedo platform:
### Step 1: Obtain Your ElevenLabs API Key
1. If you don't have an ElevenLabs account, [sign up here](https://elevenlabs.io/sign-up).
2. Once logged in, navigate to your ElevenLabs dashboard.
3. In the bottom left corner of the page, click on your profile name.
4. In the dropdown menu, select "API Keys" to access your API key management page.
5. On the API Keys page, you'll find your existing API key or options to create a new one.
6. If you don't already have an API key, click on "Create new API key".
7. Copy the generated API key—you'll need this for Aikeedo.
Keep your API key secure and confidential. It grants access to ElevenLabs services and should not be shared publicly.
### Step 2: Configure Aikeedo
1. Log in to your Aikeedo admin panel.
2. Navigate to **Settings > ElevenLabs**.
3. Paste your ElevenLabs API key into the designated field.
4. Click **Save Changes** to activate the integration.
Congratulations! ElevenLabs is now integrated with your Aikeedo platform.
## Voice Synchronization
Aikeedo synchronizes the available voices from your ElevenLabs account every 4 hours. This means that any new voices added to your ElevenLabs account library may take up to 4 hours to appear in the Aikeedo app.
Only voices available through the ElevenLabs API can be used with Aikeedo. Community-created voices are not available through the API by default. To use community voices, you must first add them to your ElevenLabs account voice library. Once added, they will become available through the voice list API and subsequently in Aikeedo after the next synchronization.
## Aikeedo Tools Powered by ElevenLabs
ElevenLabs integration enhances the following Aikeedo tools:
1. **VoiceOver**: Transform text into natural-sounding speech with a wide range of voices and languages.
2. **Voice Isolator**: Separate and enhance voice audio from background noise.
## Best Practices
To make the most of your ElevenLabs integration:
* Experiment with different voices to find the best fit for your use case.
* Use clear and well-formatted text input for optimal text-to-speech results.
* Consider the language and accent requirements of your project when selecting voices.
* Monitor your API usage to manage costs effectively.
* Regularly check your ElevenLabs account for new voices and add desired ones to your library.
## Troubleshooting
If you encounter issues with the ElevenLabs integration, try these steps:
1. Verify that your API key is correct and active.
2. Check your ElevenLabs account for any usage limits or restrictions.
3. Ensure your Aikeedo platform is up to date.
4. Confirm you have sufficient credit balance in your ElevenLabs account.
5. For model-specific issues, verify that your account has access to the required models.
6. If you don't see newly added voices, remember that synchronization can take up to 4 hours.
7. If you receive error messages related to voice generation or processing, check the ElevenLabs status page for any ongoing service issues.
Regularly review your ElevenLabs usage, available models, and voice library to ensure smooth integration with Aikeedo.
Remember to review ElevenLabs' usage policies and pricing to ensure compliance and manage costs effectively.
# Fal AI Integration
Source: https://docs.aikeedo.com/integrations/falai
Enhance your Aikeedo platform with Fal AI's advanced image generation capabilities. This guide walks you through setting up and leveraging Fal AI's powerful models for creating unique and high-quality images.
## Introduction
Aikeedo's Fal AI integration unlocks advanced image generation capabilities for your platform. With access to Fal AI's cutting-edge models, you can significantly enhance your Imagine tool, allowing users to create unique and high-quality images from text descriptions.
## Setting Up the Integration
Follow these steps to connect Fal AI with your Aikeedo platform:
### Step 1: Obtain Your Fal AI API Key
1. If you don't have a Fal AI account, [sign up here](https://www.fal.ai/).
2. Once logged in, navigate to your Fal AI dashboard.
3. In the top navigation menu, click on "API Keys".
4. You'll see a list of your existing API keys. If you don't have any, or want to create a new one, click the "Add Key" button in the top right corner.
5. Copy the API key to your clipboard — you'll need this for Aikeedo.
Keep your API key secure and confidential. It grants access to Fal AI services and should not be shared publicly. Fal AI masks part of the key in the dashboard for security reasons.
### Step 2: Configure Aikeedo
1. Log in to your Aikeedo admin panel.
2. Navigate to **Settings > FalAI**.
3. In the "API" section, enter your Fal AI API Secret in the "API Secret" field.
4. Click **Save changes** to activate the integration.
Great job! Fal AI is now integrated with your Aikeedo platform.
## Aikeedo Tools Powered by Fal AI
Fal AI integration enhances the following Aikeedo tool:
1. **Imagine**: Create unique and high-quality images from text descriptions using Fal AI's advanced image generation models.
## Best Practices
To make the most of your Fal AI integration:
* Experiment with different models to find the best fit for your use case.
* Provide clear and detailed text descriptions for optimal image generation results.
* Consider the style and complexity requirements of your project when selecting models.
* Monitor your API usage to manage costs effectively.
* Regularly update your integration to access the latest models and features.
## Troubleshooting
If you encounter issues with the Fal AI integration, try these steps:
1. Verify that your API Secret is correct and active.
2. Check your Fal AI account for any usage limits or restrictions.
3. Ensure your Aikeedo platform is up to date.
4. If you receive error messages related to model access or quotas, verify your account status with Fal AI.
5. For model-specific issues, confirm that your account has access to the required models.
6. If you experience slow response times, consider using a different model or optimizing your requests.
Regularly review your Fal AI usage and available model options to ensure smooth integration with Aikeedo.
Remember to review Fal AI's usage policies and pricing to ensure compliance and manage costs effectively as you scale your image generation integration.
# Google Cloud Platform Integration
Source: https://docs.aikeedo.com/integrations/gcp
Enhance your Aikeedo platform with Google Cloud Platform's advanced AI capabilities. This guide walks you through setting up and leveraging GCP's powerful text-to-speech services for high-quality voice generation.
## Introduction
Aikeedo's Google Cloud Platform integration unlocks advanced text-to-speech capabilities for your platform. With access to a wide range of high-quality voices, GCP's services can significantly enhance your VoiceOver tool and audio content creation.
## Setting Up the Integration
Follow these steps to connect Google Cloud Platform with your Aikeedo platform:
### Step 1: Obtain Your GCP Service Account Credentials
1. If you don't have a Google Cloud Platform account, [sign up here](https://cloud.google.com/). You'll need to provide some basic information and a valid payment method to create an account.
2. Once logged in, access the Google Cloud Console:
* Go to [console.cloud.google.com](https://console.cloud.google.com).
* If this is your first time, you'll be prompted to create a new project. Otherwise, you can create a new project or select an existing one from the top-left dropdown menu.
3. Enable the Text-to-Speech API for your project:
* In the Cloud Console, go to the "APIs & Services" page.
* Click on the "+ ENABLE APIS AND SERVICES" button at the top.
* Search for "Cloud Text-to-Speech API" and select it.
* Click the "ENABLE" button to activate the API for your project.
4. Create a service account and download the JSON key file:
* Navigate to the [IAM & Admin > Service Accounts](https://console.cloud.google.com/iam-admin/serviceaccounts) page in the Cloud Console.
* Click the "+ CREATE SERVICE ACCOUNT" button at the top of the page.
* Enter a name for your service account (e.g., "aikeedo-tts-service"), and optionally add a description.
* Click "CREATE AND CONTINUE".
* In the "Grant this service account access to project" section, you can skip this step as it's not necessary for our use case.
* Click "CONTINUE" and then "DONE" to finish creating the service account.
* On the Service Accounts page, find the account you just created and click the three dots menu on the right.
* Select "Manage keys" from the dropdown.
* Click "ADD KEY" and choose "Create new key".
* Select "JSON" as the key type and click "CREATE".
* The JSON key file will be automatically downloaded to your computer. Keep this file secure, as it contains sensitive information.
The JSON key file you've downloaded contains credentials that grant access to your GCP project and its resources. Treat it like a password and never share it publicly or commit it to version control systems.
Keep your service account JSON key file secure and confidential. It grants access to your GCP services and should not be shared publicly.
### Step 2: Configure Aikeedo
1. Log in to your Aikeedo admin panel.
2. Navigate to **Settings > Google Cloud Platform Settings**.
3. In the "Service account" section, click "Choose file" and select the JSON key file you downloaded from GCP.
4. Click **Save changes** to activate the integration.
Great job! Google Cloud Platform is now integrated with your Aikeedo platform.
## Available Voice Types
Aikeedo leverages GCP's Text-to-Speech service, which offers a variety of voice types:
* Standard voices
* Premium voices
* Studio voices
These voice types offer different levels of quality and naturalness, allowing you to choose the best fit for your specific use case.
## Aikeedo Tools Powered by GCP
Google Cloud Platform integration enhances the following Aikeedo tool:
1. **VoiceOver**: Transform text into high-quality, natural-sounding speech using a wide range of voices and languages.
## Best Practices
To make the most of your GCP integration:
* Experiment with different voice types (Standard, Premium, Studio) to find the best fit for your use case.
* Consider the language and accent requirements of your project when selecting voices.
* Monitor your API usage to manage costs effectively.
## Troubleshooting
If you encounter issues with the GCP integration, try these steps:
1. Verify that your service account JSON key file is correct and active.
2. Check your GCP project for any usage limits or restrictions.
3. Ensure the Text-to-Speech API is enabled for your project.
4. Confirm you have sufficient credit balance in your GCP account.
5. For voice-specific issues, verify that your account has access to the required voice types.
6. If you receive error messages related to authentication or API calls, double-check your service account permissions.
Regularly review your GCP usage and available voice options to ensure smooth integration with Aikeedo.
Remember to review Google Cloud Platform's usage policies and pricing to ensure compliance and manage costs effectively as you scale your text-to-speech integration.
# Google Analytics
Source: https://docs.aikeedo.com/integrations/google-analytics
Track user behavior, page views, and engagement metrics in Aikeedo using Google Analytics 4 (GA4) measurement and reporting.
## Introduction
Google Analytics 4 integration enables tracking and analysis of user behavior on your Aikeedo platform, providing insights to optimize user experience and engagement.
## Setting Up the Integration
Follow these steps to connect Google Analytics with your Aikeedo platform:
### Step 1: Create a Google Analytics Account and Property
1. If you don't have a Google Analytics account, [sign up here](https://analytics.google.com/).
2. Once logged in, create a new property for your Aikeedo website.
3. Follow Google's prompts to set up your property and obtain your Measurement ID (it starts with "G-").
If you're new to Google Analytics, consider watching their introductory videos or reading their setup guide for beginners.
### Step 2: Configure Aikeedo
1. Log in to your Aikeedo admin panel.
2. Navigate to Settings.
3. Find and click on "Script Tags" in the Integrations section.
4. Look for the "Google Analytics" integration option.
5. In the "Config" section, you'll see two important fields:
* **Status**: This is a toggle switch to enable or disable Google Analytics integration.
* **GA4 Measurement ID**: This is where you'll enter your Google Analytics 4 Measurement ID.
6. Toggle the "Status" switch to enable the integration.
7. Enter your Google Analytics 4 Measurement ID (it should start with "G-") in the "GA4 Measurement ID" field.
8. Click the "Save changes" button to apply your configuration.
Great job! Google Analytics is now integrated with your Aikeedo platform.
This integration is intended only for Google Analytics 4. For other versions, you may need to use custom script tags.
If you can't find your Measurement ID, click the "Click here" link below the ID field for additional guidance.
## What This Integration Does
* Tracks page views across your Aikeedo website
* Monitors basic user interactions and behavior
* Provides insights on user demographics and interests (if enabled in your Google Analytics settings)
* Helps you understand which pages are most visited
## Best Practices
To make the most of your Google Analytics integration:
* Regularly check your Google Analytics dashboard for insights on page views and user behavior.
* Use the data to inform decisions about content creation and website improvements.
* Consider setting up custom events or enhanced measurement in your Google Analytics account for more detailed tracking.
* Familiarize yourself with Google Analytics 4 features to maximize the value of the collected data.
* Respect user privacy and comply with data protection regulations like GDPR.
* If you need more advanced tracking (e.g., custom events, goal conversions), consider working with a developer to implement custom Google Analytics code.
This integration injects the default Google Analytics script. While it provides valuable basic insights, setting up advanced features like goal tracking may require additional custom implementation.
## Troubleshooting
If you're not seeing data in your Google Analytics account:
1. Verify that you've entered the correct Measurement ID in Aikeedo.
2. Allow 24-48 hours for data to start appearing in your Google Analytics dashboard.
3. Use Google's real-time reports to check if current traffic is being tracked.
4. Ensure you don't have any ad-blocking software that might interfere with Analytics.
5. Check if you need to accept terms or complete any additional setup steps in your Google Analytics account.
Remember that Google Analytics data is not real-time for most reports. There's usually a delay of several hours before data appears in your standard reports.
# Google Tag Manager Integration
Source: https://docs.aikeedo.com/integrations/google-tag-manager
Enhance your Aikeedo platform with Google Tag Manager to manage and deploy marketing tags on your website. This guide walks you through setting up Google Tag Manager for your Aikeedo website.
## Introduction
Aikeedo's Google Tag Manager integration allows you to easily manage and deploy various marketing and analytics tags on your platform without modifying the code. By adding Google Tag Manager, you can efficiently implement tracking codes, conversion pixels, and other third-party scripts, providing flexibility in managing your website's tags.
## Setting Up the Integration
Follow these steps to connect Google Tag Manager with your Aikeedo platform:
### Step 1: Create a Google Tag Manager Account and Container
1. If you don't have a Google Tag Manager account, [sign up here](https://tagmanager.google.com/).
2. Once logged in, create a new container for your Aikeedo website.
3. Follow Google's prompts to set up your container and obtain your Container ID (it starts with "GTM-").
If you're new to Google Tag Manager, consider exploring their documentation or tutorials to understand how to set up tags, triggers, and variables.
### Step 2: Configure Aikeedo
1. Log in to your Aikeedo admin panel.
2. Navigate to Settings.
3. Find and click on "Script Tags" in the Integrations section.
4. Look for the "Google Tag Manager" integration option.
5. In the "Config" section, you'll see two important fields:
* **Status**: This is a toggle switch to enable or disable Google Tag Manager integration.
* **GTM Container ID**: This is where you'll enter your Google Tag Manager Container ID.
6. Toggle the "Status" switch to enable the integration.
7. Enter your Google Tag Manager Container ID (it should start with "GTM-") in the "GTM Container ID" field.
8. Click the "Save changes" button to apply your configuration.
Great job! Google Tag Manager is now integrated with your Aikeedo platform.
## What This Integration Does
* Allows you to manage various marketing and analytics tags from a single interface
* Enables easy implementation of tracking codes, conversion pixels, and other scripts
* Provides flexibility to add, edit, or remove tags without directly modifying your website's code
* Facilitates A/B testing and personalization through tag management
## Best Practices
To make the most of your Google Tag Manager integration:
* Use Google Tag Manager to implement your Google Analytics tracking (if you're using it)
* Create a clear naming convention for your tags, triggers, and variables
* Use built-in templates when possible to reduce errors
* Test your tags thoroughly in a non-production environment before publishing
* Use workspaces and versions to manage changes and rollbacks
* Regularly audit your tags to remove any that are no longer needed
* Consider setting up user permissions to control who can make changes to your tags
While Google Tag Manager makes it easier to manage tags, it's important to understand the impact of each tag on your website's performance and user privacy.
## Troubleshooting
If you're experiencing issues with your Google Tag Manager integration:
1. Verify that you've entered the correct Container ID in Aikeedo.
2. Use Google Tag Manager's Preview mode to check if the container is loading correctly on your website.
3. Check the browser console for any JavaScript errors that might be preventing tags from firing.
4. Ensure that there are no conflicts between tags implemented via Google Tag Manager and any hardcoded scripts on your website.
5. Verify that your tags are set up correctly in the Google Tag Manager interface, with appropriate triggers and variables.
Google Tag Manager's Debug mode is a powerful tool for troubleshooting tag issues. Use it to see which tags are firing and why.
# Intercom Integration
Source: https://docs.aikeedo.com/integrations/intercom
Enhance your Aikeedo platform with Intercom to provide real-time customer support and engagement. This guide walks you through setting up Intercom for your Aikeedo website.
## Introduction
Aikeedo's Intercom integration allows you to add powerful customer messaging and support capabilities to your platform. By integrating Intercom, you can engage with your users in real-time, provide support, and gather valuable insights about your customer interactions.
## Setting Up the Integration
Follow these steps to connect Intercom with your Aikeedo platform:
### Step 1: Create an Intercom Account and Obtain Necessary Credentials
1. If you don't have an Intercom account, [sign up here](https://www.intercom.com/).
2. Once logged in, navigate to the Settings menu in your Intercom dashboard.
3. In the left sidebar, click on "Messenger" under the "Channels" section.
4. On the Messenger settings page, click on the "Install" tab.
5. You'll see two important pieces of information here:
* **Workspace/App ID**: This is displayed at the top of the installation code snippet. It's a string that looks like "abc123de".
* **Secret Key**: Click on "Copy secret key" to copy your secret key. It's a long string of characters used for identity verification.
The Secret Key is crucial for enabling Identity Verification, which adds an extra layer of security to your integration. Never share this key publicly or commit it to version control systems.
Intercom recommends using Identity Verification to ensure the security and integrity of your user data. Make sure to enable this feature in both Intercom and Aikeedo settings.
6. Copy both the Workspace/App ID and the Secret Key—you'll need these for configuring Aikeedo.
Keep your Secret Key confidential. As the Intercom dashboard warns: "Never commit it directly to your repository, client-side code, or anywhere a third party can find it."
### Step 2: Configure Aikeedo
1. Log in to your Aikeedo admin panel.
2. Navigate to Settings.
3. Find and click on "Script Tags" in the Integrations section.
4. Look for the "Intercom" integration option.
5. In the "Config" section, you'll see the following fields:
* **Status**: A toggle switch to enable or disable the Intercom integration.
* **Identity verification**: A toggle to enable or disable identity verification.
* **Workspace/App ID**: Enter your Intercom Workspace/App ID here.
* **Secret key**: Enter your Intercom Secret Key here (required for identity verification).
6. Toggle the "Status" switch to enable the integration.
7. We recommend enabling "Identity verification" for enhanced security.
8. Enter your Intercom Workspace/App ID in the designated field.
9. If you've enabled identity verification, enter your Intercom Secret Key.
10. Click the "Save changes" button to apply your configuration.
Great job! Intercom is now integrated with your Aikeedo platform.
The Secret Key is required to enable Identity Verification, which adds an extra layer of security to your integration.
If you can't find your Workspace/App ID, click the "Click here" link below the ID field for additional guidance.
## What This Integration Does
* Adds the Intercom chat widget to your Aikeedo website
* Allows real-time communication with your users
* Enables you to provide customer support directly through your website
* Helps you gather user feedback and insights
* Facilitates user onboarding and engagement through targeted messages
## Best Practices
To make the most of your Intercom integration:
* Set up welcome messages to greet new users and guide them through your platform
* Use Intercom's targeted messaging features to engage users based on their behavior
* Customize the appearance of the Intercom widget to match your brand
* Set up an organized inbox and team assignments for efficient customer support
* Utilize Intercom's knowledge base feature to create self-service support resources
* Regularly review conversation data and user feedback to improve your product and support
Remember to respect user privacy and comply with data protection regulations when collecting and handling user data through Intercom.
## Troubleshooting
If you're experiencing issues with your Intercom integration:
1. Verify that you've entered the correct Workspace/App ID in Aikeedo.
2. If using identity verification, ensure your Secret Key is correct and up to date.
3. Check if the Intercom widget appears on your website after enabling the integration.
4. Clear your browser cache and cookies, then reload your website to see if the widget appears.
5. Ensure there are no JavaScript errors in your browser console that might be preventing Intercom from loading.
6. If the widget appears but isn't functioning correctly, verify your Intercom account settings and workspace configuration.
Intercom provides a test mode in their dashboard. Use this to verify your integration without affecting real users.
# Ollama Integration
Source: https://docs.aikeedo.com/integrations/ollama
Run open-source large language models locally with Ollama integration. This guide explains how to set up and configure Ollama for your Aikeedo platform.
## Introduction
Ollama allows you to run large language models locally on your own hardware. By integrating Ollama with Aikeedo, you can provide AI capabilities without relying on cloud services, ensuring data privacy and reducing costs.
Currently, Ollama integration is available only for the Chat tool in Aikeedo.
## About Ollama
Ollama is an open-source project that simplifies running and managing large language models locally. It offers:
* Easy installation and setup
* Support for various open-source models
* Local execution for enhanced privacy
* Custom model configuration
* REST API for integration
For more information, visit the [official Ollama website](https://ollama.ai).
## Setting Up Ollama
### Step 1: Install Ollama
```bash theme={null}
curl -fsSL https://ollama.ai/install.sh | sh
```
For Apple Silicon (M1/M2) Macs, Metal GPU acceleration is supported automatically.
```bash theme={null}
curl -fsSL https://ollama.ai/install.sh | sh
```
For NVIDIA GPUs:
* Ensure CUDA 11.7 or later is installed
* Install NVIDIA container toolkit
For AMD GPUs:
* ROCm 5.6 or later is required
* Check hardware compatibility in ROCm documentation
1. Download the latest installer from [Ollama Windows Release](https://github.com/ollama/ollama/releases)
2. Run the downloaded installer
3. Follow the installation wizard
Requirements:
* Windows 10 or later
* For NVIDIA GPUs, install CUDA 11.7 or later
For detailed installation instructions and troubleshooting, refer to the [Ollama Installation Guide](https://github.com/ollama/ollama#installation).
### Step 2: Configure Your Model
1. Start the Ollama service
2. Pull your desired model. For example:
```bash theme={null}
ollama pull llama2
# or
ollama pull mistral
# or
ollama pull llama2-uncensored
```
View all available models at [Ollama Model Library](https://ollama.ai/library).
### Step 3: Configure Server Address
By default, Ollama runs on:
```
http://localhost:11434
```
For remote access, you'll need to:
1. Configure your firewall to allow access to port 11434
2. Set up proper security measures as Ollama doesn't include authentication by default
When exposing Ollama to remote access, ensure you implement appropriate security measures to protect your server.
## Integrating with Aikeedo
### Step 1: Configure Aikeedo
1. Log in to your Aikeedo admin panel
2. Navigate to Settings → Integrations → Ollama
3. Enter your Ollama server address (e.g., `http://localhost:11434`)
4. Add your models:
* **Key**: A unique identifier (e.g., `ollama/llama2:latest`)
* **Name**: Display name for the model
* **Provider**: Set as "Meta" for Llama models, or appropriate provider
5. Click "Save changes"
The server address must include the scheme (http/https), host, and port number.
## Model Configuration
You can customize model behavior using Modelfiles. Example:
```text theme={null}
FROM llama2
PARAMETER temperature 0.7
PARAMETER top_p 0.9
PARAMETER top_k 40
```
Learn more about model configuration in the [Ollama Documentation](https://github.com/ollama/ollama/blob/main/docs/modelfile.md).
## Hardware Requirements
Minimum requirements vary by model:
* 7B models: 8GB RAM
* 13B models: 16GB RAM
* 33B+ models: 32GB+ RAM
GPU acceleration is supported for:
* NVIDIA GPUs with CUDA
* AMD GPUs with ROCm
* Apple Silicon (Metal)
## Best Practices
1. **Model Selection**:
* Start with smaller models (7B) and test performance
* Consider your hardware capabilities
* Choose models based on your specific use case
2. **Performance**:
* Enable GPU acceleration when available
* Monitor system resources
* Adjust model parameters for optimal performance
3. **Security**:
* Implement proper firewall rules
* Use reverse proxy for additional security
* Regular system updates
## Troubleshooting
Common issues and solutions:
1. **Connection Issues**:
* Verify Ollama service is running
* Check server address format
* Confirm firewall settings
2. **Model Loading Failures**:
* Ensure sufficient system resources
* Verify model is properly pulled
* Check model compatibility
3. **Performance Issues**:
* Monitor system resources
* Consider using a smaller model
* Adjust model parameters
## Additional Resources
* [Ollama GitHub Repository](https://github.com/ollama/ollama)
* [Ollama Documentation](https://github.com/ollama/ollama/tree/main/docs)
* [Ollama API Reference](https://github.com/ollama/ollama/blob/main/docs/api.md)
* [Ollama Discord Community](https://discord.gg/ollama)
Keep Ollama and your models updated for the best performance and security.
# OneSignal Integration
Source: https://docs.aikeedo.com/integrations/onesignal
Enhance your Aikeedo platform with OneSignal's push notification capabilities. This guide walks you through setting up and leveraging OneSignal for engaging your users with timely notifications.
## Introduction
Aikeedo's OneSignal integration enables powerful push notification functionality for your platform. By integrating OneSignal, you can significantly enhance user engagement by sending timely and relevant notifications to your users across various devices.
## Setting Up the Integration
Follow these steps to connect OneSignal with your Aikeedo platform:
### Step 1: Create a OneSignal App and Obtain Your App ID
1. If you don't have a OneSignal account, [sign up here](https://onesignal.com/).
2. Once logged in, click on "All Apps" in the left sidebar.
3. Click the "New App/Website" button to create a new app.
4. Fill in the following details:
* **OneSignal App Name**: Enter a name for your Aikeedo integration (e.g., "Aikeedo Notifications").
* **Select your organization**: Choose the appropriate organization from the dropdown.
5. Under "Set up your first channel", select "Web" as we're integrating with a web application.
6. Click "Next: Configure Your Platform" to proceed.
7. On the Web Configuration page, choose "Custom Code" as the integration type.
8. Follow the prompts to complete the web push setup for your domain using the Custom Code integration.
9. Once setup is complete, navigate to "Settings" > "Keys & IDs" in the left sidebar.
10. Under the "OneSignal Keys" section, you'll find your "OneSignal App ID". It's a long string of characters (e.g., 900877c5-995b-49ef-95e8-af7d52f36054).
11. Copy this App ID—you'll need it for Aikeedo.
### Step 2: Configure Aikeedo
1. Log in to your Aikeedo admin panel.
2. Navigate to **Settings > OneSignal**.
3. In the "Configuration" section, you'll see the following options:
* **Status**: Toggle this to enable or disable the OneSignal integration.
* **App ID**: Enter your OneSignal App ID in this field.
4. Paste your OneSignal App ID into the "App ID" field.
5. Enable the integration by toggling the "Status" switch to the enabled position.
6. Click **Save changes** to activate the integration.
Great job! OneSignal is now integrated with your Aikeedo platform.
## Best Practices
To make the most of your OneSignal integration:
* Craft clear and concise notification messages to engage users effectively.
* Use segmentation to send targeted notifications to specific user groups.
* Test your notifications across different devices and platforms to ensure consistency.
* Monitor notification performance and user engagement metrics in your OneSignal dashboard.
## Troubleshooting
If you encounter issues with the OneSignal integration, try these steps:
1. Verify that your App ID is correct and active.
2. Ensure that webpush is properly set up in your OneSignal account with Custom Code.
3. Check that the integration is enabled in your Aikeedo settings.
4. Test the integration by sending a test notification from your OneSignal dashboard.
5. If you experience delivery issues, check your OneSignal dashboard for any error messages or delivery reports.
6. Ensure your Aikeedo platform is up to date.
Can't find your App ID? Click the "Click here" link below the App ID field in the Aikeedo settings for additional guidance.
Remember to review OneSignal's usage policies and pricing to ensure compliance and manage costs effectively as you scale your push notification integration.
# OpenAI Integration
Source: https://docs.aikeedo.com/integrations/openai
Integrate OpenAI models into Aikeedo for chat, content generation, image creation, transcription, and text-to-speech capabilities.
## Introduction
The OpenAI integration enables access to latest models for chat, content generation, image creation, transcription, and text-to-speech capabilities within your Aikeedo platform.
## Setting Up the Integration
Follow these simple steps to connect OpenAI with your Aikeedo platform:
### Step 1: Obtain Your OpenAI API Key
1. If you don't have an OpenAI account, [sign up here](https://platform.openai.com/signup).
2. Once logged in, navigate to the [API keys page](https://platform.openai.com/account/api-keys).
3. Click on **Create new secret key**.
4. Copy the generated API key—you'll need this for Aikeedo.
Keep your API key secure. It provides access to OpenAI's services and should
not be shared publicly.
### Step 2: Configure Aikeedo
1. Log in to your Aikeedo admin panel.
2. Navigate to **Settings > OpenAI**.
3. Paste your OpenAI API key into the **API Secret** field.
4. Configure webhook settings (see Step 3 below).
5. Click **Save Changes** to activate the integration.
Congratulations! OpenAI is now integrated with your Aikeedo platform.
### Step 3: Configure Webhooks (Required)
Webhook configuration is required for OpenAI integration to function properly.
To enable real-time event notifications from OpenAI, you need to configure webhooks:
1. **Set up Webhook URL**: The webhook URL is automatically provided as `https://your-domain.com/webhooks/openai`
2. **Configure OpenAI Dashboard**:
* Go to your [OpenAI Webhooks Settings](https://platform.openai.com/settings/project/webhooks)
* Create a new webhook endpoint using the provided webhook URL
3. **Set Webhook Secret**:
* Generate a webhook secret in your OpenAI dashboard
* Copy the secret and paste it into the **Webhook secret** field in Aikeedo
4. **Select Events**: Ensure the following events are selected in your OpenAI webhook configuration:
* `video.completed`
* `video.failed`
Make sure to select all listed events in your OpenAI webhook configuration for
proper functionality.
## Custom API Keys (BYOK)
Aikeedo supports Bring Your Own Key (BYOK) functionality for OpenAI integration:
* **Workspace-level API keys**: Workspace owners can provide their own OpenAI API key
* **System override**: When configured, the workspace-specific API key takes precedence over the system-wide API key
* **Credit management**: Custom API keys bypass workspace credit deductions for OpenAI services
* **Subscription requirement**: A valid subscription plan and credit balance are still required for other features and API services
**BYOK is not available for features that require OpenAI webhooks.** Models
such as Sora 2 and Sora 2 Pro always use the system-wide API key because they
depend on webhook notifications for proper functionality.
BYOK is particularly useful for organizations that want to manage their own
OpenAI billing and usage directly. For detailed information about BYOK
configuration and setup, see the [BYOK documentation](/advanced/byok).
## Aikeedo Tools Powered by OpenAI
OpenAI integration enhances the following Aikeedo tools:
1. **Chat**: Engage in intelligent conversations and get instant answers.
2. **Writer**: Generate high-quality content for various purposes.
3. **Coder**: Receive coding assistance and explanations.
4. **Imagine**: Create unique images from text descriptions.
5. **Transcriber**: Convert audio to text with high accuracy.
6. **Voiceover**: Transform text into natural-sounding speech.
7. **Classifier**: Categorize and analyze text content.
## Best Practices
To make the most of your OpenAI integration:
* Experiment with different models to find the best fit for your use case.
* Use clear and specific prompts to get the most accurate results.
* Monitor your API usage to manage costs effectively.
## Troubleshooting
If you encounter issues with the OpenAI integration, try these steps:
1. **API Key Issues**:
* Verify that your API key is correct and active
* Check your OpenAI account for any usage limits or restrictions
* Confirm you have sufficient credit balance in your OpenAI platform account
2. **Webhook Configuration**:
* Ensure webhook URL is correctly configured in your OpenAI dashboard
* Verify that the webhook secret matches between OpenAI and Aikeedo
* Check that all required events (`video.completed`, `video.failed`) are selected
3. **General Issues**:
* Ensure your Aikeedo platform is up to date
* Check network connectivity and firewall settings
* Verify SSL certificates are valid for webhook endpoints
4. **Model Access Issues**:
* For model-specific issues, verify that your account has access to the required models
* If you receive an error message like "The model \[model-name] does not exist or you do not have access to it":
* This error comes directly from OpenAI and indicates that the specific model is not enabled for your account
* Some models may require specific account tiers or permissions
* Check which models are accessible to you on the [OpenAI Playground](https://platform.openai.com/playground)
* Ensure your OpenAI account has sufficient credits and the correct billing setup for the models you're trying to use
5. **BYOK Issues**:
* If using custom API keys, ensure the workspace-specific key is valid and active
* Verify that the custom key has the necessary permissions for required models
* For comprehensive BYOK troubleshooting and configuration details, refer to the [BYOK documentation](/advanced/byok)
Regularly review your OpenAI usage and available models to ensure smooth
integration with Aikeedo.
Remember to review OpenAI's usage policies and pricing to ensure compliance
and manage costs effectively.
# OpenAI API-Compatible Servers
Source: https://docs.aikeedo.com/integrations/openai-api-compatibility
Learn how to integrate any OpenAI-compatible API provider with your Aikeedo platform.
## Introduction
Aikeedo supports any API provider that implements the OpenAI API specification. This means you can integrate any service that follows OpenAI's API format, whether it's a cloud service, self-hosted model, or custom implementation.
If a service is compatible with OpenAI's API specification, it will work with Aikeedo - there are no restrictions on which providers you can use.
## Common Providers
While you can use any OpenAI-compatible provider, here are some popular options:
* Together AI
* OpenRouter
* Groq
* DeepSeek
* Google AI (Gemini)
* Perplexity AI
* Hugging Face
* Nebius
* DeepInfra
* AI/ML API
* Azure OpenAI Service
* v0 by Vercel
* Self-hosted models (via compatible servers)
* Custom LLM implementations
## Adding a New Provider
1. Go to Settings → Integrations
2. Scroll to "Custom LLM Servers" section
3. Click "New server"
### Configuration Fields
#### API Server
* **Name**: A descriptive name for the provider
* **Server address**: The API endpoint URL
* **API Key/Authorization token**: Your authentication token for the service
The server address supports dynamic variables for flexible configuration.
##### **Dynamic Variables**
You can use the following variable in your server address:
* `{model}`: Will be dynamically replaced with the current model name
**Example for Hugging Face**:
```text theme={null}
https://api-inference.huggingface.co/models/{model}
```
When using model "mistralai/Mistral-7B-Instruct-v0.1", the actual request will go to:
```text theme={null}
https://api-inference.huggingface.co/models/mistralai/Mistral-7B-Instruct-v0.1
```
Dynamic variables are particularly useful for services like Hugging Face where the model name is part of the API endpoint.
#### Headers
Aikeedo automatically adds these default headers:
* `Content-Type: application/json`
* `Authorization: Bearer YOUR_API_KEY` (when API key field is filled)
You can override these default headers or add custom headers as needed. This is useful when a provider requires specific header configurations.
##### Adding Custom Headers
1. Click "Add header"
2. Enter the header key (e.g., `HTTP-Referer`)
3. Enter the header value
4. Repeat for additional headers
##### Examples
**Override default Authorization header**:
```text theme={null}
Key: Authorization
Value: Basic YOUR_BASE64_CREDENTIALS
```
**Add provider-specific headers**:
```text theme={null}
Key: X-Title
Value: Your Application Name
```
If you need to override the default Content-Type or Authorization headers, simply add them with your desired values in the custom headers section.
#### Models Configuration
For each model you want to use:
* **Key**: Unique identifier for the model (e.g., `gpt-3.5-turbo`)
* **Name**: Display name shown to users
* **Provider**: The model provider's name
* **Vision**: Toggle if the model supports image analysis
* **Tools**: Toggle if the model supports function calling
## Provider-Specific Setup
```text Server theme={null}
https://api.together.xyz/v1
```
Get your API key from [Together AI Settings](https://api.together.ai/settings/api-keys)
```text Server theme={null}
https://openrouter.ai/api/v1
```
Get your API key from [OpenRouter Settings](https://openrouter.ai/settings/keys)
```text Server theme={null}
https://generativelanguage.googleapis.com/v1beta/openai
```
Get your API key from [Google AI Studio](https://aistudio.google.com/apikey)
```text Server theme={null}
https://api-inference.huggingface.co/models/{model}/v1/
```
Get your API key from [Hugging Face Settings](https://huggingface.co/settings/tokens)
The variable in the server address will be automatically replaced with your chosen model name.
```text Server theme={null}
https://api.groq.com/openai/v1
```
Get your API key from [Groq Console](https://console.groq.com/keys)
Groq is known for its extremely fast inference speeds and competitive pricing.
```text Server theme={null}
https://api.deepseek.com
```
Required headers:
* `Authorization`: Bearer YOUR\_API\_KEY
Get your API key from [DeepSeek Platform](https://platform.deepseek.com/api_keys)
DeepSeek offers both general-purpose and code-specialized models with competitive pricing.
```text Server theme={null}
https://api.perplexity.ai
```
Get your API key from [Perplexity Settings](https://www.perplexity.ai/settings/api)
Perplexity offers high-quality models with strong reasoning capabilities and up-to-date knowledge.
```text Server theme={null}
https://api.studio.nebius.ai/v1/
```
Get your API key from [Nebius Studio](https://studio.nebius.com/settings/api-keys)
```text Server theme={null}
https://api.deepinfra.com/v1/openai/
```
Get your API key from [DeepInfra Dashboard](https://deepinfra.com/dash/api_keys)
DeepInfra provides access to a variety of open-source models with competitive pricing and low latency.
```text Server theme={null}
https://api.aimlapi.com/v1/
```
Get your API key from [AI/ML API Keys](https://aimlapi.com/app/keys)
```text Server theme={null}
https://:resource_name.openai.azure.com/openai/deployments/:deployment_name/chat/completions?api-version=:api_version
```
Get your API key and other details from [Azure Portal](https://portal.azure.com/#blade/Microsoft_Azure_ProjectOxford/CognitiveServicesHub/OpenAI)
For Azure OpenAI Service:
* Replace `:resource_name` with your Azure OpenAI resource name
* Replace `:deployment_name` with `{model}` to use your configured model names as deployment names
* Replace `:api_version` with your desired API version (e.g., '2024-10-21')
* Different endpoints (like completions, embeddings) will need their specific paths
Example configuration:
```text theme={null}
https://my-instance.openai.azure.com/openai/deployments/{model}/chat/completions?api-version=2024-10-21
```
When you configure a model named "gpt-4o-mini", it will automatically use that as the deployment name in the URL.
```text Server theme={null}
https://api.v0.dev/v1
```
Model name: `v0-1.0-md`
Get your API key from [v0.dev Settings](https://v0.dev/chat/settings/keys)
The v0 API is currently in beta and requires a Premium or Team plan with usage-based billing enabled.
## Tools Compatibility
When configuring models for your custom LLM server, you can enable them for:
1. **Chat**: Interactive conversations and assistance
2. **Writer**: Content generation and writing tasks
3. **Coder**: Programming help and code generation
4. **Title Generation**: Automatic title creation for content
Make sure to enable only the capabilities that your chosen model actually supports. Enabling unsupported features may result in unexpected behavior.
## Best Practices
1. **Testing**:
* Test each model after configuration
* Verify response formats
* Check token limits and pricing
2. **Security**:
* Keep API keys secure
* Use HTTPS for external providers
* Regularly rotate API keys
3. **Monitoring**:
* Track API usage
* Monitor response times
* Check for error rates
## Troubleshooting
Common issues and solutions:
1. **Authentication Errors**:
* Verify API key format
* Check header configuration
* Confirm server address is correct
2. **Model Issues**:
* Ensure model names match provider's specifications
* Verify model availability in your subscription
* Check provider's status page
3. **Connection Problems**:
* Verify network connectivity
* Check for firewall restrictions
* Confirm server address format
Always refer to your provider's documentation for the most up-to-date configuration details and troubleshooting guides.
## Rate Limits and Quotas
* Monitor your provider's rate limits
* Check quota usage regularly
* Set up alerts for quota thresholds
* Consider implementing retry logic for rate limit errors
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
Keep your integrations updated as providers may change their API specifications or requirements.
# Bank Transfer Payment
Source: https://docs.aikeedo.com/integrations/payment-gateways/bank-transfer
Configure bank transfer payments in Aikeedo with domestic and international transfer options, beneficiary details, and bank information for secure offline payment processing.
Bank Transfer is a built-in payment method in Aikeedo that allows customers to pay via direct bank transfers. This payment option supports both domestic and international transfers with comprehensive bank details configuration.
## Overview
Bank Transfer payments provide an alternative to online payment gateways, allowing customers to transfer funds directly to your business bank account. This method is particularly useful for:
* High-value transactions
* B2B payments
* Customers who prefer traditional banking methods
* Regions with limited online payment gateway support
Bank Transfer is a built-in payment method and doesn't require additional plugins or external service setup.
## Prerequisites
Before configuring bank transfer payments, ensure you have:
* A business bank account with domestic and/or international transfer capabilities
* Complete bank details including routing numbers, SWIFT codes, and addresses
* Beneficiary information for your business
* Bank-issued documents (if required by your bank)
## Configuration
### Accessing Bank Transfer Settings
1. Log in to your Aikeedo admin panel
2. Navigate to **Settings > Payments > Bank Transfer**
3. You'll see three main configuration sections:
* **Details** (General settings)
* **Domestic Transfer** (Local bank transfers)
* **International Transfer** (Cross-border transfers)
### General Settings (Details)
Configure the basic bank transfer settings:
Toggle the **Status** switch to "Enabled" to activate bank transfer payments.
Set the **Enabled for** dropdown to specify which payment types support bank transfers:
* One time payments (Recommended)
* One-time and annual payments
* All payments
Choose **One time payments (Recommended)** from the dropdown for standard bank transfer processing.
Since bank transfers require manual verification, it's recommended to enable them only for one-time payments to avoid complications with recurring payment processing.
### Domestic Transfer Configuration
Set up domestic bank transfer details for local payments:
Toggle the **Status** switch to "Enabled" for domestic transfers.
Enter your business information:
* **Beneficiary name / Account holder**: Your business legal name
* **Account number**: Your business bank account number
* **Beneficiary address**: Complete business address
Provide your bank's information:
* **Bank name**: Your bank's official name
* **Routing number**: Bank routing number (US) or sort code (UK)
* **Bank address**: Complete bank branch address
* **Currency**: Select the primary currency (e.g., US Dollar)
* **Tax ID**: Your business tax identification number (optional)
* **Reference / Memo**: Payment reference information (optional)
If required by your bank, upload supporting documents:
* Click **Browse files** to upload bank-issued documents
* Use **View current** to review uploaded files
* Use **Delete** to remove outdated documents
### International Transfer Configuration
Configure international bank transfer details for cross-border payments:
Toggle the **Status** switch to "Enabled" for international transfers.
Enter international transfer information:
* **Beneficiary name / Account holder**: Your business legal name
* **IBAN / Account number**: International Bank Account Number
* **Beneficiary address**: Complete business address including country
Provide international banking information:
* **Bank name**: Your bank's official name
* **SWIFT / BIC Code**: Bank Identifier Code for international transfers
* **Bank address**: Complete bank address including country
* **Currency**: Select the currency for international transfers
* **Tax ID**: Your business tax identification number (optional)
* **Reference / Memo**: Payment reference with bank details
If your bank requires an intermediary bank:
* **Bank name**: Corresponding bank name
* **SWIFT / BIC Code**: Corresponding bank's SWIFT code
* **Account number**: Your account number with the corresponding bank
* **Bank address**: Corresponding bank's address
* Upload any required bank requisites documents
## Payment Processing Flow
### For Customers
When customers choose bank transfer payment:
1. **Payment Selection**: Customer selects "Bank Transfer" from available payment methods during checkout
2. **Order Placement**: Customer clicks "Place order" to complete the purchase
3. **Payment Instructions**: Customer is redirected to order details page with comprehensive bank transfer instructions
4. **Transfer Execution**: Customer initiates transfer through their bank using provided details
5. **Order Tracking**: Customer can monitor order status in their billing overview
6. **Order Fulfillment**: Order is processed after payment verification by admin
Payment details are provided after placing the order, not during checkout. This ensures customers have complete banking information before initiating transfers.
### For Administrators
To process bank transfer payments:
1. **Access Orders**: Navigate to **Billing > Orders** in admin panel to view all orders
2. **Filter Pending Orders**: Select "Pending" status from the filter options to view all orders awaiting manual verification (including bank transfers and other manual payment methods)
3. **Review Order Details**: Click on individual orders to view customer and payment information
4. **Verify Payments**: Check your bank account for incoming transfers matching order details
5. **Update Order Status**: Use **Approve** or **Reject** buttons to update order status
6. **Process Orders**: Approved orders are processed immediately and cannot be reverted
Bank transfer payments require manual verification. Always confirm payment receipt before fulfilling orders. Once approved or rejected, orders cannot be reverted.
## Order Management
### Admin Order Management
Bank transfer orders appear in the admin panel with "Pending" status until manually verified. Note that the pending orders list includes all manual payment methods, not just bank transfers:
1. **Access Orders**: Navigate to **Billing > Orders** in the admin panel to view all orders
2. **Filter Pending Orders**: Select "Pending" status from the filter options to view all orders awaiting manual verification (including bank transfers and other manual payment methods)
3. **Review Order Details**: Click on any order to view:
* Customer information and workspace details
* Order summary (plan, credits, total amount)
* Payment gateway information (Yookassa transaction ID)
* Order creation date and status
### Order Status Actions
For each pending bank transfer order, you can:
* **Approve**: Click the green "Approve" button to confirm payment and fulfill the order
* **Reject**: Click the gray "Reject" button to cancel the order if payment is not received
### Customer Order Tracking
Customers can track their bank transfer orders through their billing overview:
1. **Access Billing**: Navigate to billing overview from the main dashboard
2. **View Orders**: Check the "Latest orders" section for pending bank transfer orders
3. **Order Details**: Click on any order to view detailed bank transfer instructions
4. **Status Updates**: Order status updates automatically when admin approves payment
### Customer Checkout Experience
When customers select bank transfer as their payment method:
1. **Payment Method Selection**: During checkout, customers can choose "Bank Transfer" from available payment options
2. **Order Placement**: After selecting bank transfer, customers click "Place order" to complete the purchase
3. **Order Confirmation**: The system creates a pending order and redirects to order details page
4. **Bank Transfer Instructions**: Customers receive comprehensive banking details including:
* Order ID for reference
* Beneficiary information (company name, account details)
* Bank details (name, routing number, SWIFT code)
* Complete addresses for both beneficiary and bank
* Correspondent bank information (for international transfers)
* Download option for bank requisites
The checkout page displays "Payment details will be provided after placing the order" to inform customers that banking information comes after order creation.
## Best Practices
### Security Considerations
* **Verify Payments**: Always confirm payment receipt before order fulfillment
* **Document Everything**: Keep records of all bank transfer transactions
* **Secure Information**: Protect sensitive banking information
* **Regular Reconciliation**: Regularly reconcile bank statements with orders
### Customer Communication
* **Clear Instructions**: Provide detailed, easy-to-follow transfer instructions
* **Reference Numbers**: Include order numbers in transfer references
* **Timeline Expectations**: Set clear expectations for payment processing time
* **Support Contact**: Provide customer support for payment-related questions
### Documentation Requirements
* **Bank Statements**: Keep copies of bank statements for verification
* **Transfer Confirmations**: Save transfer confirmation documents
* **Order Records**: Maintain detailed order and payment records
* **Compliance**: Ensure compliance with local banking regulations
## Troubleshooting
### Common Issues
**Payment Not Received**
* Verify bank account details are correct
* Check if transfer is still in progress
* Contact your bank for transfer status
**Incorrect Transfer Details**
* Verify customer provided correct reference information
* Check if transfer was sent to correct account
* Contact customer for clarification
**International Transfer Delays**
* International transfers can take 1-5 business days
* Check with your bank for processing times
* Verify all international banking codes are correct
### Verification Process
1. **Check Bank Account**: Review recent transactions in your bank account
2. **Match Details**: Compare transfer details with order information in admin panel
3. **Verify Order ID**: Ensure the order ID matches the reference provided to customer
4. **Contact Bank**: If needed, contact your bank for verification
5. **Update Order Status**: Use the "Approve" button in admin panel to confirm payment
### Order Status Management
**Pending Orders**
* Orders remain in "Pending" status until manually approved
* Customers cannot use purchased credits until order is approved
* Orders can be rejected if payment is not received within reasonable time
**Approved Orders**
* Orders are processed immediately upon approval
* Credits are immediately available to customers
* Orders cannot be reverted or reversed once approved
**Rejected Orders**
* Orders are cancelled and credits are not provided
* Orders cannot be reverted or reversed once rejected
* Customers should be notified of rejection with reason
* New orders can be placed if payment issues are resolved
Bank Transfer payments are now configured and ready to accept customer payments through direct bank transfers.
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
# Cryptomus Integration
Source: https://docs.aikeedo.com/integrations/payment-gateways/cryptomus
Configure Cryptomus payment gateway in Aikeedo with API credentials for secure cryptocurrency payments and digital asset transactions.
Cryptomus integration enables secure cryptocurrency payment processing for your Aikeedo platform, supporting various digital currencies and blockchain networks. This guide covers account setup and API configuration.
Cryptomus integration is available as a separate plugin that must be purchased from the [Aikeedo Marketplace](https://aikeedo.com/marketplace/) before you can configure this payment gateway.
## Prerequisites
Before you begin, ensure you have:
* An active [Cryptomus merchant account](https://cryptomus.com/gateway)
* Access to your Aikeedo admin panel
* Your domain properly configured with SSL enabled
* A verified business entity
## Step 1: Set Up Your Cryptomus Account
If you haven't already, sign up for a Cryptomus merchant account:
1. Visit the [Cryptomus website](https://cryptomus.com/gateway) and click "Get Started"
2. Register using your email or phone number
3. Create a merchant account for payment processing
4. Complete the business verification process
5. Wait for account approval and moderation
Cryptomus requires domain verification to ensure the legitimacy of your platform. This can be done through DNS records, meta tags, or HTML file upload.
## Step 2: Obtain Cryptomus API Credentials
To connect Aikeedo with Cryptomus, you'll need to retrieve your API credentials:
1. Log in to your [Cryptomus Dashboard](https://cryptomus.com/dashboard)
2. Navigate to **Business** > **Merchants**
3. Select your project and click **Merchant Settings**
4. In the **API Integration** section, you'll find your credentials:
* **Merchant ID**: Your unique merchant identifier (e.g., `1bd8163d-92e0-4c1d-9452-5b4dc212f307`)
* **Payment API Key**: Your API key for payment operations (e.g., `Dgke********3stU`)
Keep your Payment API Key confidential! Never share it publicly or include it in client-side code.
## Step 3: Pass KYB Verification and Domain Verification
Before you can process payments, you need to pass Cryptomus verification:
1. **KYB (Know Your Business) Verification**:
* Click "Pass KYB" in your merchant settings
* Provide required business documents and information
* This ensures your safety by preventing fraud in financial transactions
2. **Domain Verification**: Choose one of these methods:
* **DNS Record**: Add a TXT record to your domain
* **Meta Tag**: Insert a meta tag in your website's head section
* **HTML File**: Upload an HTML file to your website root
3. **Wait for Approval**: Cryptomus will review your application
Both KYB verification and domain verification are mandatory for security and compliance purposes. Without them, your merchant account cannot process payments.
## Step 3: Configure Cryptomus in Aikeedo
Now that you have your Cryptomus account set up, configure the integration in Aikeedo:
1. Log in to your Aikeedo admin panel
2. Navigate to **Payments** in the main menu
3. Click on **Cryptomus**
### Details Section
Configure the general settings:
1. **Status**: Toggle the switch to enable Cryptomus payments
2. **Charge Currency**: Select your preferred currency
* **Inherit**: Use your platform's default currency (USD)
* **Custom**: Choose from a wide range of fiat currencies including USD, EUR, GBP, and many others
* If you select a currency different from your default and have a currency rate provider set up, amounts will be automatically converted
3. **Enabled for** (required field):
* **One-time payments**: Single transactions only
* **One-time and monthly payments**: Both single and recurring subscriptions (recommended)
### Keys Section
Enter your API credentials:
1. **Merchant ID**: Enter your Cryptomus Merchant ID (e.g., `1bd8163d-92e0-4c1d-9452-5b4dc212f307`)
2. **Payment API Key**: Enter your Cryptomus Payment API Key
3. Click **Save changes** to apply your settings
Congratulations! Cryptomus payments are now enabled on your Aikeedo platform.
## Testing Your Integration
Before going live, it's crucial to test your Cryptomus integration:
1. Create test plans with small prices to verify payment processing
2. Test different cryptocurrency networks
3. Test payment confirmation and order updates
Always test thoroughly with small amounts before processing larger payments. Cryptocurrency transactions are irreversible.
## Troubleshooting
If you encounter any issues with your Cryptomus integration, try these steps:
1. **Verify API Credentials**: Double-check your Merchant ID and Payment API Key in the Keys section
2. **Check KYB Verification**: Ensure your merchant account has passed KYB verification in the merchant settings
3. **Check Domain Verification**: Ensure your domain is properly verified
4. **Test Payments**: Create test plans with small amounts to verify the integration works correctly
### Common Issues
Double-check your Merchant ID and Payment API Key. You can find these in your Cryptomus Dashboard under Business > Merchants > Merchant Settings.
Ensure your merchant account has passed KYB verification and domain verification. Check that your domain is properly verified and your merchant account has passed moderation.
If you see "KYB not verified" in your merchant settings, click "Pass KYB" and provide the required business documents and information to complete the verification process.
Cryptomus does not support annual payments. Only one-time payments and monthly subscriptions are available. This limitation is clearly indicated in the settings interface.
## Additional Resources
* [Cryptomus API Documentation](https://doc.cryptomus.com/)
* [Cryptomus Business Dashboard](https://cryptomus.com/dashboard)
* [Supported Cryptocurrencies](https://cryptomus.com/currencies)
By following this guide, you've successfully integrated Cryptomus payments into your Aikeedo platform, providing your users with a secure and convenient cryptocurrency payment experience.
# Manual Payment Method
Source: https://docs.aikeedo.com/integrations/payment-gateways/custom-payment-method
Configure custom manual payment methods in Aikeedo with custom instructions, file uploads, and flexible payment processing for unique business requirements.
Manual Payment Method is a built-in payment option in Aikeedo that allows you to create custom payment instructions for customers. This flexible payment method is perfect for unique business requirements, offline payments, or specific payment processes that don't fit standard payment gateways.
## Overview
Custom Payment Method provides complete flexibility in how customers pay for your services. You can define custom payment instructions, upload supporting files, and create payment flows that match your specific business needs.
This payment method is ideal for:
* Offline payment processes
* Custom payment instructions
* Business-specific payment requirements
* Alternative payment methods not covered by standard gateways
* Manual payment verification processes
Manual Payment Method is a built-in payment option and doesn't require additional plugins or external service setup.
## Prerequisites
Before configuring manual payment methods, ensure you have:
* Clear payment instructions for your customers
* Any supporting documentation or files ready for upload
* A defined process for verifying custom payments
* Customer support procedures for payment-related inquiries
## Configuration
### Accessing Manual Payment Settings
1. Log in to your Aikeedo admin panel
2. Navigate to **Settings > Payments > Manual Payment** (or **Settings > Payments > \[Your Method Name]** if already configured)
3. You'll see the "Manual payment settings" configuration page
The navigation path changes based on configuration status:
* **Before configuration**: **Settings > Payments > Manual Payment**
* **After configuration**: **Settings > Payments > \[Your Method Name]** (where \[Your Method Name] is the method name you've defined)
### Basic Configuration
Configure the fundamental settings for your custom payment method:
Toggle the **Status** switch to "Enabled" to activate custom payment processing.
Set the **Enabled for** dropdown to specify which payment types support custom payment methods:
* One time payments (Recommended)
* One-time and annual payments
* All payments
Choose **One time payments (Recommended)** from the dropdown for standard custom payment processing.
Since custom payment methods require manual verification, it's recommended to enable them only for one-time payments to avoid complications with recurring payment processing.
### Payment Method Details
Define how your custom payment method appears to customers:
Enter a **Method name** that will be displayed to customers at checkout:
* Use a clear, descriptive name (e.g., "Check Payment", "Money Order", "Corporate Purchase Order")
* This name appears in the payment options during checkout
* The navigation path will change to **Settings > Payments > \[Your Method Name]** after saving
* Keep it concise but informative
Provide detailed **Payment instructions** for customers:
* Enter step-by-step instructions customers should follow
* Include all necessary details for payment completion
* Specify any required information or documentation
* Mention processing times and next steps
Be as detailed as possible. Include contact information, reference numbers, and any specific requirements.
### Optional File Upload
Enhance your payment instructions with supporting documentation:
Add an optional **Instructions file** to provide additional guidance:
* Click **Browse files** to upload supporting documents
* Upload PDFs, images, or other relevant files
* Use **View current** to review uploaded files
* Use **Delete** to remove outdated files
Supported file types typically include PDF, DOC, DOCX, JPG, PNG, and other common formats.
## Payment Processing Flow
### For Customers
When customers choose your custom payment method:
1. **Payment Selection**: Customer selects your custom payment method from available payment methods during checkout
2. **Order Placement**: Customer clicks "Place order" to complete the purchase
3. **Payment Instructions**: Customer is redirected to order details page with your custom payment instructions
4. **Transfer Execution**: Customer follows your specific payment process using provided instructions
5. **Order Tracking**: Customer can monitor order status in their billing overview
6. **Order Fulfillment**: Order is processed after payment verification by admin
Payment details are provided after placing the order, not during checkout. Customers are immediately redirected to the order details page where they can view complete payment instructions for initiating payments.
### For Administrators
To process custom payment method orders:
1. **Access Orders**: Navigate to **Billing > Orders** in admin panel to view all orders
2. **Filter Pending Orders**: Select "Pending" status from the filter options to view all orders awaiting manual verification (including custom payment methods and other manual payment methods)
3. **Review Order Details**: Click on individual orders to view customer and payment information
4. **Verify Payments**: Confirm payment completion through your defined process
5. **Update Order Status**: Use **Approve** or **Reject** buttons to update order status
6. **Process Orders**: Approved orders are processed immediately and cannot be reverted
Custom payment methods require manual verification. Always confirm payment completion before fulfilling orders. Once approved or rejected, orders cannot be reverted.
## Order Management
### Admin Order Management
Custom payment method orders appear in the admin panel with "Pending" status until manually verified. Note that the pending orders list includes all manual payment methods, not just custom payment methods:
1. **Access Orders**: Navigate to **Billing > Orders** in the admin panel to view all orders
2. **Filter Pending Orders**: Select "Pending" status from the filter options to view all orders awaiting manual verification (including custom payment methods and other manual payment methods)
3. **Review Order Details**: Click on any order to view:
* Customer information and workspace details
* Order summary (plan, credits, total amount)
* Payment method information
* Order creation date and status
### Order Status Actions
For each pending custom payment method order, you can:
* **Approve**: Click the green "Approve" button to confirm payment and fulfill the order
* **Reject**: Click the gray "Reject" button to cancel the order if payment is not received
### Customer Order Tracking
Customers can track their custom payment method orders through their billing overview:
1. **Access Billing**: Navigate to billing overview from the main dashboard
2. **View Orders**: Check the "Latest orders" section for pending custom payment method orders
3. **Order Details**: Click on any order to view detailed payment instructions
4. **Status Updates**: Order status updates automatically when admin approves payment
### Customer Checkout Experience
When customers select your custom payment method as their payment method:
1. **Payment Method Selection**: During checkout, customers can choose your custom payment method from available payment options
2. **Order Placement**: After selecting the custom payment method, customers click "Place order" to complete the purchase
3. **Order Confirmation**: The system creates a pending order and redirects to order details page
4. **Payment Instructions**: Customers receive comprehensive payment instructions including:
* Order ID for reference
* Custom payment instructions you've configured
* Any uploaded instruction files
* Contact information for support
The checkout page displays "Payment details will be provided after placing the order" to inform customers that payment instructions come after order creation.
## Best Practices
### Instruction Writing
**Clear and Concise**
* Use simple, easy-to-understand language
* Break complex processes into numbered steps
* Include all necessary contact information
* Specify exact amounts and reference numbers
**Complete Information**
* Include all required payment details
* Specify processing times and deadlines
* Mention any required documentation
* Provide multiple contact methods
### Customer Communication
**Proactive Support**
* Provide clear contact information for questions
* Set realistic expectations for processing times
* Offer multiple ways to reach support
* Follow up on pending payments
**Documentation**
* Keep records of all custom payment transactions
* Maintain copies of payment confirmations
* Document any special arrangements
* Track payment processing times
### Security Considerations
**Payment Verification**
* Always verify payment completion before order fulfillment
* Use secure methods for payment confirmation
* Protect sensitive customer information
* Maintain audit trails for all transactions
**Documentation Security**
* Secure storage of payment-related files
* Regular backup of payment records
* Access controls for sensitive information
* Compliance with data protection regulations
## Common Use Cases
### Offline Payments
* Cash payments for local customers
* Check payments for B2B transactions
* Money order or cashier's check payments
* In-person payment collection
### Specialized Payment Methods
* Cryptocurrency payments
* Wire transfers with specific instructions
* Payment plans or installments
* Corporate purchase orders
### Regional Payment Methods
* Local payment systems not supported by standard gateways
* Bank-specific payment processes
* Government or institutional payment methods
* Alternative financial services
## Troubleshooting
### Common Issues
**Unclear Instructions**
* Review and simplify payment instructions
* Test instructions with a sample customer
* Gather feedback and improve clarity
* Provide multiple contact methods for questions
**Payment Verification Delays**
* Establish clear verification procedures
* Set up automated notifications for new orders
* Create escalation procedures for delayed payments
* Maintain regular communication with customers
**File Upload Issues**
* Check file size and format requirements
* Ensure files are accessible and properly formatted
* Test file uploads before going live
* Provide alternative access methods if needed
### Order Status Management
**Pending Orders**
* Orders remain in "Pending" status until manually approved
* Customers cannot use purchased credits until order is approved
* Orders can be rejected if payment is not received within reasonable time
**Approved Orders**
* Orders are processed immediately upon approval
* Credits are immediately available to customers
* Orders cannot be reverted or reversed once approved
**Rejected Orders**
* Orders are cancelled and credits are not provided
* Orders cannot be reverted or reversed once rejected
* Customers should be notified of rejection with reason
* New orders can be placed if payment issues are resolved
Manual Payment Method is now configured and ready to accept payments through your custom payment process.
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
# Iyzico Integration
Source: https://docs.aikeedo.com/integrations/payment-gateways/iyzico
Configure the Iyzico payment gateway in Aikeedo via UI: enter keys, set currency, and add webhooks. No coding required.
Iyzico enables secure card payments and subscriptions in Turkey. This guide shows how to configure the ready‑to‑use plugin in Aikeedo using your Iyzico dashboard. No code is needed.
Iyzico integration is available as a separate plugin that must be purchased from the [Aikeedo Marketplace](https://aikeedo.com/marketplace/) before you can configure this payment gateway.
Subscription management (Abonelik Yönetimi) is provided by Iyzico as an add‑on. To use subscriptions, enable it from the Eklentiler section in your Iyzico dashboard. Learn more: [Iyzico Abonelik](https://docs.iyzico.com/urunler/abonelik).
## Prerequisites
Make sure you have:
* An active [Iyzico merchant account](https://www.iyzico.com/)
* Access to your Aikeedo admin panel
* Your domain with SSL (HTTPS)
* A business registered in Turkey (required by Iyzico)
## Step 1: Get your Iyzico API keys
From the Iyzico dashboard:
1. Log in to the [Iyzico Merchant Panel](https://merchant.iyzipay.com/login) or Sandbox panel if testing.
2. Go to **Ayarlar > Firma Ayarları** (Settings > Merchant Settings).
3. In the **API Anahtarları** card you will see:
* **API Anahtarı** (API Key) — public key
* **Güvenlik Anahtarı** (Secret Key)
4. Copy both values. You will paste them into Aikeedo.
Keep your Secret Key confidential. Do not share it publicly.
## Step 2: Configure Iyzico in Aikeedo
1. In Aikeedo, open **Payments** and click **Iyzico**.
2. In the **Details** section:
* **Status**: Enable to turn on Iyzico.
* **Charge Currency**: Choose the currency to charge customers. Options include: Turkish Lira (TRY), US Dollar (USD), Euro (EUR), British Pound (GBP), Norwegian Krone (NOK), Russian Ruble (RUB), Swiss Franc (CHF), or **Inherit** to use your default.
* **Mode**: Select **Sandbox** for testing or **Live** for production.
3. In the **Keys** section (Sandbox or Live tab):
* **API public key**: paste your Iyzico API Key.
* **Secret key**: paste your Iyzico Secret Key.
4. In the **Webhooks** card, Aikeedo shows your read‑only webhook URL.
* Copy this URL; you will paste it into the Iyzico dashboard in the next step.
5. Click **Save changes**.
Iyzico is now connected. New payments will be processed through Iyzico according to your selected mode and currency.
## Step 3: Add webhook URLs in Iyzico
To receive payment and subscription notifications from Iyzico:
1. In the Iyzico dashboard, open **Ayarlar > Firma Ayarları**.
2. In **İşyeri Bildirimleri** (Merchant Notifications), enable notifications and paste the webhook URL you copied from Aikeedo into the **İşyeri Bildirimleri Url** field.
3. If you use subscriptions, in **İşyeri Abonelik Ödeme Bildirimleri** enable both toggles and paste the same webhook URL into:
* **Başarılı Abonelik Bildirimleri Url**
* **Başarısız Abonelik Bildirimleri Url**
4. Save changes in the Iyzico dashboard.
Using the same single webhook URL for all merchant and subscription events is recommended. Aikeedo routes events automatically.
## Testing
To test without real charges:
1. In Aikeedo, set **Mode** to **Test**.
2. Log in to the [Iyzico Sandbox](https://sandbox-merchant.iyzipay.com/).
3. Use Iyzico test cards to perform a payment or a subscription: [Test Kartları](https://docs.iyzico.com/ek-bilgiler/test-kartlari).
4. Check that the transaction appears in Aikeedo and that webhooks are received.
Sandbox uses test cards and does not move money. Switch to Live only after successful tests.
## Going live
1. Replace Sandbox keys in Aikeedo with your Live **API Key** and **Secret Key** from Iyzico.
2. Ensure **İşyeri Bildirimleri** and (if applicable) **Abonelik Ödeme Bildirimleri** point to your production domain.
3. Change **Mode** to **Live** and save.
## Troubleshooting
Verify you pasted the correct key pair (API Key and Güvenlik Anahtarı) for the selected mode (Sandbox/Live).
Confirm notifications are enabled in Iyzico and that the URL matches `{your_domain}/webhooks/iyzico` over HTTPS.
If a currency rate provider is configured in Aikeedo, amounts will be converted to the selected Charge Currency automatically.
Ensure the Iyzico Abonelik add‑on is purchased and enabled under Eklentiler in the Iyzico dashboard, and subscription notification URLs are set.
## Additional resources
* [Iyzico Abonelik (official docs)](https://docs.iyzico.com/urunler/abonelik)
* [Iyzico Merchant Panel – Sandbox](https://sandbox-merchant.iyzipay.com/)
* [Iyzico Test Cards](https://docs.iyzico.com/ek-bilgiler/test-kartlari)
* [Iyzico Website](https://www.iyzico.com/)
# Mercado Pago
Source: https://docs.aikeedo.com/integrations/payment-gateways/mercadopago
Configure Mercado Pago as a payment gateway in Aikeedo to accept one-time and recurring payments across Latin America.
The Mercado Pago plugin adds payment acceptance for Latin America to your Aikeedo platform. It supports one-time purchases and recurring subscription billing across seven regional currencies, using Mercado Pago's hosted checkout and Preapproval subscription flows.
Mercado Pago is an additional plugin available for purchase from the [Aikeedo Marketplace](https://aikeedo.com/marketplace/mercadopago/). Install it from your admin panel before following this guide.
## Prerequisites
* A [Mercado Pago](https://www.mercadopago.com/) business account
* The Mercado Pago plugin installed on your Aikeedo installation
* Access to your Aikeedo admin panel
## Supported currencies
| Currency | Country |
| -------- | --------- |
| ARS | Argentina |
| BRL | Brazil |
| CLP | Chile |
| COP | Colombia |
| MXN | Mexico |
| PEN | Peru |
| UYU | Uruguay |
## Step 1: Obtain your access tokens
You need separate **Access Token** values for test and live modes. Refer to the [Mercado Pago credentials documentation](https://www.mercadopago.com.ar/developers/en/docs/subscriptions/additional-content/your-integrations/credentials) for instructions on how to find and activate your credentials.
Keep your access tokens confidential. Never share them publicly or commit them to version control.
## Step 2: Set up the webhook and obtain the signing secret
Aikeedo verifies incoming Mercado Pago webhooks using an HMAC-SHA256 signature. You need to register your webhook URL and obtain the signing secret Mercado Pago provides.
1. In the Mercado Pago Developer Dashboard, navigate to **Notifications > Webhooks**.
2. Click **Add webhook**.
3. Set the notification URL to:
```
https://your-aikeedo-domain.com/webhooks/mercadopago
```
4. Under **Events**, select all events, or at minimum **Subscription preapproval** (`subscription_preapproval`) to receive subscription lifecycle events.
5. Save the webhook. Mercado Pago will display a **signing secret** — copy it.
6. Repeat this for both your test and live webhook configurations to obtain separate signing secrets for each mode.
## Step 3: Enable Mercado Pago in Aikeedo
1. In your Aikeedo admin panel, navigate to **Settings > Payments > Mercado Pago**.
2. Toggle the switch to enable Mercado Pago.
3. Set the **Charge Currency** — select a specific currency or leave it as **Inherit** to use the platform's default currency.
4. Select the **Mode**: **Test** for development, **Live** for production.
5. Enter your credentials for each mode:
* **Live**: live access token and live webhook signing secret
* **Test**: test access token and test webhook signing secret
6. Click **Save changes**.
Mercado Pago is now enabled on your platform.
## Payment flows
**One-time payments** — Aikeedo creates a Checkout Preference and redirects the customer to the Mercado Pago-hosted checkout page. After payment, the customer is redirected back to your platform and the payment is verified against the order.
**Recurring subscriptions** — Aikeedo creates a Mercado Pago Preapproval and redirects the customer to authorize it. Subsequent billing cycles are charged automatically on a monthly or yearly cadence. When a subscription is cancelled in Aikeedo, it is cancelled in Mercado Pago via the API. If Mercado Pago sends a `cancelled` or `paused` status via webhook, Aikeedo cancels the subscription on its side as well.
## Testing
1. Set the mode to **Test** in **Settings > Payments > Mercado Pago**.
2. Use [Mercado Pago test users and cards](https://www.mercadopago.com/developers/en/docs/checkout-pro/additional-content/your-integrations/test/cards) to simulate payment scenarios.
3. Verify that one-time payments and subscriptions complete correctly and that webhook events are received and processed.
Switch to **Live** mode when you are ready to accept real payments.
## Troubleshooting
* **Payments not completing**: Verify that the access token matches the selected mode (test/live) and that the application credentials are active.
* **Webhooks not received**: Confirm that the webhook URL is publicly accessible and that the `subscription_preapproval` event type is selected in the Mercado Pago developer dashboard.
* **Webhook signature verification failing**: Ensure the **Webhook Signing Secret** in Aikeedo matches the secret shown in the Mercado Pago dashboard for the registered webhook endpoint.
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
# Payment Gateways
Source: https://docs.aikeedo.com/integrations/payment-gateways/overview
Configure payment gateways for secure online payments in Aikeedo. Choose from built-in options like Stripe, PayPal, Bank Transfer, and Manual Payment, or purchase additional gateway plugins.
## Overview
Aikeedo provides comprehensive payment processing capabilities through multiple payment gateways, enabling you to accept payments from customers worldwide. The platform includes built-in payment methods and supports additional gateway plugins for specialized payment processing needs.
Built-in payment methods are included with Aikeedo, while additional gateway
plugins are available for purchase from the [Aikeedo
Marketplace](https://aikeedo.com/marketplace/).
## Built-in Payment Methods
Aikeedo includes several payment methods out of the box:
Industry-leading payment processor with support for cards, digital wallets, and international payments.
Popular payment platform supporting PayPal accounts, credit cards, and PayPal
Credit.
Direct bank transfer payments with domestic and international transfer
support.
Custom payment method with flexible instructions and manual verification process.
## Additional Gateway Plugins
Expand your payment options with specialized gateway plugins available in the marketplace:
Russian payment gateway supporting cards, e-wallets, and mobile payments.
African payment gateway with support for local payment methods across Africa.
Indian payment gateway supporting cards, UPI, net banking, and digital
wallets.
Turkish payment gateway with comprehensive local payment method support.
Cryptocurrency payment gateway supporting Bitcoin, Ethereum, and other digital
currencies.
Payment gateway for Latin America supporting one-time and recurring payments
in ARS, BRL, CLP, COP, MXN, PEN, and UYU.
Payment gateway for Southeast Asia supporting one-time and recurring payments in IDR, PHP, VND, THB, SGD, and MYR.
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
# PayPal Integration
Source: https://docs.aikeedo.com/integrations/payment-gateways/paypal
Configure PayPal payment gateway in Aikeedo with API credentials, webhooks, and subscription handling for secure online payments.
PayPal integration enables secure payment processing and subscription management for your Aikeedo platform. This guide covers account setup, API configuration, and webhook implementation.
## Prerequisites
Before you begin, ensure you have:
* An active [PayPal Business account](https://www.paypal.com/us/business)
* Access to your Aikeedo admin panel
* Your domain properly configured with SSL enabled
## Step 1: Set Up Your PayPal Business Account
If you haven't already, sign up for a PayPal Business account:
1. Visit the [PayPal Business website](https://www.paypal.com/us/business) and click "Sign Up"
2. Follow the prompts to create and verify your business account
3. Complete any additional verification steps required by PayPal
## Step 2: Obtain PayPal API Credentials
To connect Aikeedo with PayPal, you'll need to retrieve your API credentials:
1. Log in to the [PayPal Developer Dashboard](https://developer.paypal.com/dashboard/)
2. Navigate to **Apps & Credentials**
3. Click on **Create App** to generate a new app for your integration
4. Set the following details:
* App Name: Choose a name for your integration (e.g., "Aikeedo Payments")
* Select "Merchant" as the app type
5. Click "Create App"
6. On the next page, you'll find your **Client ID** and can generate a **Secret Key**
Keep your Secret Key confidential! Never share it publicly or include it in client-side code.
## Step 3: Set Up PayPal Webhooks
Webhooks are crucial for handling recurring payments and keeping your Aikeedo platform in sync with PayPal. Here's how to set them up:
1. In the PayPal Developer Dashboard, go to your app's details page
2. Scroll down to the **Webhooks** section and click "Add Webhook"
3. Enter your webhook URL: `https://your-aikeedo-domain.com/webhooks/paypal`
4. Select the following events:
* `INVOICING.INVOICE.CANCELLED`
* `INVOICING.INVOICE.CREATED`
* `INVOICING.INVOICE.PAID`
* `INVOICING.INVOICE.REFUNDED`
* `INVOICING.INVOICE.SCHEDULED`
* `INVOICING.INVOICE.UPDATED`
* `BILLING.SUBSCRIPTION.CANCELLED`
5. Click "Save" to create the webhook
6. After creation, you'll see a "Webhook ID" - copy this for later use
If you're not sure which events to select, it's safe to choose all relevant billing and invoicing events for comprehensive coverage.
## Step 4: Enable PayPal in Aikeedo
Now that you have your PayPal account set up, it's time to configure Aikeedo:
1. Log in to your Aikeedo admin panel
2. Navigate to **Settings > Payments > PayPal**
3. Toggle the switch to enable PayPal payments
4. Choose the appropriate mode:
* **Sandbox**: For testing payments
* **Live**: For processing real transactions
5. Enter the following details:
* **Client ID**: Your PayPal app's Client ID
* **API Secret Key**: Your PayPal app's Secret Key
* **Webhook ID**: The Webhook ID from your webhook setup
6. Set your preferred **Charge Currency**
7. Click "Save changes" to apply your settings
Congratulations! PayPal payments are now enabled on your Aikeedo platform.
## Testing Your Integration
Before going live, it's crucial to test your PayPal integration:
1. Set Aikeedo to "Sandbox" mode
2. Use [PayPal's sandbox accounts](https://developer.paypal.com/tools/sandbox/accounts/) to simulate various payment scenarios
3. Create a test subscription or product purchase
4. Verify that payments are processed correctly and webhooks are functioning
Once you're confident everything is working as expected, switch to "Live" mode to start accepting real payments.
## Troubleshooting
If you encounter any issues with your PayPal integration, try these steps:
1. Double-check all API credentials and Webhook ID for accuracy
2. Ensure your webhook URL is correct and accessible
3. Review PayPal's developer dashboard for any error logs or failed webhook attempts
4. Check Aikeedo's error logs for any integration-related issues
By following this guide, you've successfully integrated PayPal payments into your Aikeedo platform, providing your users with a secure and convenient payment experience.
# Paystack Integration
Source: https://docs.aikeedo.com/integrations/payment-gateways/paystack
Configure Paystack payment gateway in Aikeedo with API credentials and subscription handling for secure online payments across Africa.
Paystack integration enables secure payment processing and subscription management for your Aikeedo platform, specifically designed for African markets. This guide covers account setup and API configuration.
Paystack integration is available as a separate plugin that must be purchased from the [Aikeedo Marketplace](https://aikeedo.com/marketplace/) before you can configure this payment gateway.
## Prerequisites
Before you begin, ensure you have:
* An active [Paystack merchant account](https://paystack.com/)
* Access to your Aikeedo admin panel
* Your domain properly configured with SSL enabled
* A valid business registration in supported African countries
## Step 1: Set Up Your Paystack Account
If you haven't already, sign up for a Paystack merchant account:
1. Visit the [Paystack website](https://paystack.com/) and click "Create a free account"
2. Follow the prompts to create and verify your merchant account
3. Complete the business verification process with required documents
4. Wait for account approval (typically 1-2 business days)
Paystack requires business registration in supported African countries. Personal accounts are not supported for merchant services.
## Step 2: Obtain Paystack API Credentials
To connect Aikeedo with Paystack, you'll need to retrieve your API credentials:
1. Log in to your [Paystack Dashboard](https://dashboard.paystack.com/)
2. Navigate to **Settings** > **API Keys & Webhooks**
3. You'll find your credentials:
* **Public Key**: Starts with `pk_test_` (test) or `pk_live_` (live)
* **Secret Key**: Starts with `sk_test_` (test) or `sk_live_` (live)
Keep your Secret Key confidential! Never share it publicly or include it in client-side code.
## Step 3: Configure Paystack in Aikeedo
Now that you have your Paystack account set up, configure the integration in Aikeedo:
1. Log in to your Aikeedo admin panel
2. Navigate to **Settings > Payments** page
3. Click on **Paystack**
### Details Section
Configure the general settings:
1. **Status**: Toggle the switch to enable Paystack payments
2. **Charge Currency**: Select your preferred currency
* **Inherit**: Use your platform's default currency
* **Nigerian Naira (NGN)**: Default for Nigeria
* **Ghanaian Cedi (GHS)**: For Ghana
* **Kenyan Shilling (KES)**: For Kenya
* **South African Rand (ZAR)**: For South Africa
* **US Dollar (USD)**: International transactions
* If you select a currency different from your default and have a currency rate provider set up, amounts will be automatically converted
3. **Mode**: Choose between:
* **Test**: For testing payments with Paystack's test environment
* **Live**: For processing real transactions
### Keys Section
Enter your API credentials:
1. **API public key**: Enter your Paystack public key (starts with `pk_test_` for test mode or `pk_live_` for live mode)
2. **API secret key**: Enter your Paystack secret key (starts with `sk_test_` for test mode or `sk_live_` for live mode)
3. Click **Save changes** to apply your settings
### Webhooks Section
Configure webhook notifications:
1. **Webhook URL**: The webhook URL is automatically set to `{your_domain}/webhooks/paystack`
2. Copy this URL and add it to your Paystack Dashboard:
* Go to **Settings** > **API Keys & Webhooks** in your Paystack Dashboard
* Enter the webhook URL in the **Test Webhook URL** field (or **Live Webhook URL** for production)
* Click **Save changes** in your Paystack Dashboard
The webhook URL will automatically handle all necessary payment events including successful payments, failed payments, and subscription updates. No additional configuration is required in Aikeedo.
Congratulations! Paystack payments are now enabled on your Aikeedo platform.
## Testing Your Integration
Before going live, it's crucial to test your Paystack integration:
1. Set the Paystack payment gateway to "Test" mode in the Details section
2. Use [Paystack's test card numbers](https://paystack.com/docs/payments/test-payments) to simulate various payment scenarios:
3. Create a test subscription or product purchase
4. Verify that payments are processed correctly
Paystack test environment uses special test card numbers and doesn't process real payments. Always test thoroughly before switching to live mode.
## Troubleshooting
If you encounter any issues with your Paystack integration, try these steps:
1. **Verify API Credentials**: Double-check your API Public Key and Secret Key in the Keys section
2. **Check Mode Setting**: Ensure you're using Test mode for testing and Live mode for production
3. **Verify Currency**: Make sure your selected currency is supported by Paystack
4. **Test Payments**: Use Paystack's test card numbers to verify the integration works correctly
5. **Check Webhook Configuration**: Ensure your webhook URL is properly configured in both Aikeedo and Paystack
### Common Issues
Double-check your API Public Key and Secret Key. You can find these in your Paystack Dashboard under Settings > API Keys & Webhooks.
Ensure you're using the correct mode (Test for testing, Live for production) and that your currency is supported.
Verify that your webhook URL is properly configured in your Paystack Dashboard and that your domain has SSL enabled.
If you have a currency rate provider set up, ensure it supports the currencies you're using. The amount will be automatically converted to your chosen charge currency.
## Additional Resources
* [Paystack Developer Documentation](https://paystack.com/docs)
* [Paystack API Reference](https://paystack.com/docs/api/)
* [Webhook Events Documentation](https://paystack.com/docs/api/#events)
* [Test Payments Guide](https://paystack.com/docs/payments/test-payments)
* [Supported Countries and Currencies](https://paystack.com/docs/payments/currencies)
By following this guide, you've successfully integrated Paystack payments into your Aikeedo platform, providing your users with a secure and convenient payment experience tailored for African markets.
# Razorpay Integration
Source: https://docs.aikeedo.com/integrations/payment-gateways/razorpay
Configure the Razorpay plugin in Aikeedo using API keys and webhooks.
Razorpay enables secure payments and subscriptions for the Indian market. This guide shows you how to fetch keys from Razorpay and paste them into Aikeedo.
Razorpay integration is available as a separate plugin that must be purchased from the [Aikeedo Marketplace](https://aikeedo.com/marketplace/) before you can configure this payment gateway.
## Prerequisites
Before you begin, ensure you have:
* An active [Razorpay merchant account](https://razorpay.com/)
* Access to your Aikeedo admin panel
* Your domain using HTTPS (valid SSL certificate)
* Business eligibility for accepting payments in India
## Step 1: Set up your Razorpay account
If you are new to Razorpay:
1. Visit the [Razorpay website](https://razorpay.com/) and click Sign Up”.
2. Complete onboarding and KYC verification.
3. Wait for account approval (usually 1–2 business days).
## Step 2: Get your API keys in Razorpay
1. Log in to the [Razorpay Dashboard](https://dashboard.razorpay.com/).
2. Select the mode at the top: **Test** or **Live**.
3. Go to **Account & Settings → API Keys** and click **Generate Key** for the selected mode.
4. Copy the following from the pop‑up:
* **Key Id** (starts with `rzp_test_` in Test or `rzp_live_` in Live)
* **Key Secret** (shown once when generated)
Keep your Key Secret confidential. It is shown only once on generation; store it securely.
Generating **Live** keys may require your website/app details to be verified in Razorpay. Only users with Owner or Admin role can access API Keys. See Razorpay’s guide: [API Keys](https://razorpay.com/docs/payments/dashboard/account-settings/api-keys/).
## Step 3: Configure required Razorpay settings for subscriptions
These settings are mandatory when you sell subscriptions:
* **Enable Flash Checkout** in your Razorpay Dashboard. See Razorpay’s docs: [Subscriptions – Flash Checkout](https://razorpay.com/docs/payments/subscriptions/#flash-checkout).
* **Fee bearer model** must be set to **You pay the fees**. The “Convenience fee model” is not supported for subscriptions. See Razorpay’s guide: [Configuration – Fee bearer model](https://razorpay.com/docs/payments/dashboard/account-settings/configuration/#manage-fee-bearer-model).
Without these settings, subscription payments will fail.
## Step 4: Create a webhook in Razorpay
1. In the Razorpay Dashboard, go to **Accounts & Settings → Webhooks**.
2. Click **Add New Webhook**.
3. Set the Webhook URL to your site URL followed by `/webhooks/razorpay`, for example: `https://your-domain.com/webhooks/razorpay`.
4. Select **All events**.
5. Set a **Webhook secret** (any random string). Copy it—you will paste the same value into Aikeedo.
6. Save the webhook.
The webhook secret must match exactly in Razorpay and in Aikeedo.
## Step 5: Enable Razorpay in Aikeedo
Open the Aikeedo admin and go to **Payments → Razorpay**. Fill in the sections as shown in the Aikeedo dashboard screenshot.
### Details section
1. **Status**: Enable the toggle to turn on Razorpay.
2. **Charge Currency**: Choose your billing currency. If you use a currency different from your default currency and have a currency rate provider configured, amounts are converted automatically.
3. **Mode**: Choose **Test** for testing or **Live** for real payments.
For subscriptions, ensure Flash Checkout is enabled and Fee bearer is set to “You pay the fees” in Razorpay, as noted above.
### Keys section
1. **API Key Id**: Paste the value from Razorpay.
2. **API Key Secret**: Paste the secret from Razorpay.
### Webhooks section
1. **Webhook URL**: This is shown in the Aikeedo UI. Create the same URL in Razorpay.
2. **Webhook secret**: Paste the exact secret you set in Razorpay.
3. Click **Save changes**.
Razorpay is now connected. You can accept payments and create subscriptions.
## Testing your integration
1. Set **Mode** to **Test** in Aikeedo and use your Razorpay Test keys.
2. Make a test purchase or subscription using Razorpay’s test methods: [Test Card Details](https://razorpay.com/docs/payments/payments/test-card-details/).
3. Confirm you see payment updates in Aikeedo and in the Razorpay Dashboard.
The test environment does not move real funds. Switch to Live mode only after successful tests.
## Troubleshooting
Check that Flash Checkout is enabled and Fee bearer is set to “You pay the fees” in Razorpay. See: [Subscriptions – Flash Checkout](https://razorpay.com/docs/payments/subscriptions/#flash-checkout) and [Configuration – Fee bearer model](https://razorpay.com/docs/payments/dashboard/account-settings/configuration/#manage-fee-bearer-model).
Verify your site is accessible via HTTPS, the Webhook URL matches `https://your-domain.com/webhooks/razorpay`, and the secret matches in both places.
Re‑copy the API Key Id and API Key Secret from **Accounts & Settings → API Keys** and paste them into Aikeedo.
## Additional resources
* Razorpay Subscriptions – Flash Checkout: [Subscriptions – Flash Checkout](https://razorpay.com/docs/payments/subscriptions/#flash-checkout)
* Fee bearer model configuration: [Configuration – Fee bearer model](https://razorpay.com/docs/payments/dashboard/account-settings/configuration/#manage-fee-bearer-model)
* Test cards and sandbox methods: [Test Card Details](https://razorpay.com/docs/payments/payments/test-card-details/)
# Stripe Integration
Source: https://docs.aikeedo.com/integrations/payment-gateways/stripe
Configure Stripe payment gateway in Aikeedo with API keys, webhooks, and subscription handling for secure online payments and recurring billing.
Stripe integration enables secure payment processing and subscription management for your Aikeedo platform. This guide covers account setup, API configuration, and webhook implementation.
## Prerequisites
Before you begin, ensure you have:
* An active [Stripe account](https://stripe.com/)
* Access to your Aikeedo admin panel
* Your domain properly configured with SSL enabled
## Step 1: Set Up Your Stripe Account
If you haven't already, sign up for a Stripe account:
1. Visit the [Stripe website](https://stripe.com/) and click "Start now" or "Create account"
2. Follow the prompts to create and verify your account
3. Complete any additional verification steps required by Stripe
## Step 2: Obtain Stripe API Keys
To connect Aikeedo with Stripe, you'll need to retrieve your API keys:
1. Log in to your [Stripe Dashboard](https://dashboard.stripe.com/)
2. Navigate to **Developers** > [**API keys**](https://dashboard.stripe.com/apikeys)
3. You'll see two types of keys:
* **Publishable key**: Starts with `pk_`
* **Secret key**: Starts with `sk_`
Keep your secret key confidential! Never share it publicly or include it in
client-side code.
## Step 3: Set Up Stripe Webhooks
Webhooks are crucial for handling recurring payments and keeping your Aikeedo platform in sync with Stripe. Here's how to set them up:
1. In your Stripe Dashboard, go to **Developers** > [**Webhooks**](https://dashboard.stripe.com/webhooks)
2. Click "Add endpoint"
3. Enter your webhook URL: `https://your-aikeedo-domain.com/webhooks/stripe`
4. Under "Events to send," select the following:
* `invoice.created`
* `invoice.updated`
* `invoice.finalized`
* `invoice.marked_uncollectible`
* `invoice.payment_succeeded`
* `invoice.deleted`
* `invoice.voided`
* `customer.subscription.updated`
* `customer.subscription.deleted`
5. Click "Add endpoint" to create the webhook
6. After creation, you'll see a "Signing secret" - copy this for later use
If you're not sure which events to select, it's safe to choose "Select all
events" for comprehensive coverage.
## Step 4: Enable Stripe in Aikeedo
Now that you have your Stripe account set up, it's time to configure Aikeedo:
1. Log in to your Aikeedo admin panel
2. Navigate to **Settings > Payments > Stripe**
3. Toggle the switch to enable Stripe payments
4. Choose the appropriate mode:
* **Test**: For testing payments (use Stripe's test cards)
* **Live**: For processing real transactions
5. Enter the following details:
* **API Publishable Key**: Your Stripe publishable key
* **API Secret Key**: Your Stripe secret key
* **Webhook Secret**: The signing secret from your webhook setup
6. Click "Save changes" to apply your settings
Congratulations! Stripe payments are now enabled on your Aikeedo platform.
## Testing Your Integration
Before going live, it's crucial to test your Stripe integration:
1. Set Aikeedo to "Test" mode
2. Use [Stripe's test card numbers](https://stripe.com/docs/testing) to simulate various payment scenarios
3. Create a test subscription or product purchase
4. Verify that payments are processed correctly and webhooks are functioning
Once you're confident everything is working as expected, switch to "Live" mode to start accepting real payments.
## Troubleshooting
If you encounter any issues with your Stripe integration, try these steps:
1. Double-check all API keys and secrets for accuracy
2. Ensure your webhook URL is correct and accessible
3. Review Stripe's dashboard for any error logs or failed webhook attempts
4. Check Aikeedo's error logs for any integration-related issues
By following this guide, you've successfully integrated Stripe payments into your Aikeedo platform, providing your users with a secure and efficient payment experience.
## Form types
Aikeedo supports three form types for Stripe payments. You can select the form type in **Settings > Payments > Stripe** under the **Form type** dropdown:
| Form type | Description |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| **Simple** | A minimal card-only input form. |
| **Advanced** | A full card form that includes all payment methods enabled in your Stripe account (e.g. wallets, local methods). |
| **Hosted Checkout** | Redirects customers to a Stripe-hosted checkout page to complete payment, rather than an embedded form on your platform. |
## Stripe Automatic Tax Collection
When **Hosted Checkout** is selected as the form type, an additional **Automatic Tax** option becomes available. When enabled, Stripe determines the correct tax rates and collects tax on your behalf — no manual rate configuration or tax engine plugin required.
To enable Stripe Automatic Tax Collection:
1. Navigate to **Settings > Payments > Stripe** in your admin panel.
2. Set **Form type** to **Hosted Checkout**.
3. Under the **Tax** section, toggle on **Automatic Tax**.
4. Click **Save changes**.
Stripe Tax must be activated in your [Stripe
Dashboard](https://dashboard.stripe.com/tax/registrations) before enabling
this option. You should also set a default product tax code in your Stripe Tax
settings as a fallback.
Enable Automatic Tax only when no other tax engine plugin is active in your
billing settings. Running both simultaneously will result in double tax
calculation.
Stripe Automatic Tax Collection is a separate feature from the [Stripe Tax
Engine plugin](/integrations/tax-engines/stripe-tax). The plugin calculates
tax using the Stripe Tax Calculations API for use within Aikeedo's checkout
flow, while Automatic Tax Collection delegates tax handling entirely to
Stripe.
# Xendit
Source: https://docs.aikeedo.com/integrations/payment-gateways/xendit
Configure Xendit as a payment gateway in Aikeedo to accept one-time and recurring payments across Southeast Asia.
The Xendit plugin adds payment acceptance for Southeast Asia to your Aikeedo platform. It supports one-time payment links and recurring subscription plans across six regional currencies, serving customers in Indonesia, the Philippines, Vietnam, Thailand, Singapore, and Malaysia.
Xendit is an additional plugin available for purchase from the [Aikeedo
Marketplace](https://aikeedo.com/marketplace/xendit/). Install it from your
admin panel before following this guide.
## Prerequisites
Before you begin, ensure you have:
* A [Xendit](https://www.xendit.co/) business account
* The Xendit plugin installed on your Aikeedo installation
* Access to your Aikeedo admin panel
## Supported currencies
Xendit supports the following Southeast Asian currencies:
| Currency | Country |
| -------- | ----------- |
| IDR | Indonesia |
| PHP | Philippines |
| VND | Vietnam |
| THB | Thailand |
| SGD | Singapore |
| MYR | Malaysia |
## Step 1: Obtain your API key and webhook token
1. Log in to your [Xendit Dashboard](https://dashboard.xendit.co/).
2. Navigate to **Settings > API Keys**.
3. Copy your **Secret API Key** (starts with `xnd_`).
Keep your secret API key confidential. Never share it publicly or commit it to
version control.
To authenticate incoming webhooks:
1. In the Xendit Dashboard, navigate to **Settings > Webhooks**.
2. Copy the **Webhook Verification Token** shown at the top of the page. Aikeedo uses this token to verify that incoming webhook events are genuine.
## Step 2: Configure the webhook
1. In the Xendit Dashboard, navigate to **Settings > Webhooks**.
2. Under the relevant event types, add your webhook URL:
```
https://your-aikeedo-domain.com/webhooks/xendit
```
3. Enable at minimum the **Subscription** events to keep subscription status in sync.
4. Save the webhook configuration.
## Step 3: Enable Xendit in Aikeedo
1. Log in to your Aikeedo admin panel.
2. Navigate to **Settings > Payments > Xendit**.
3. Toggle the switch to enable Xendit.
4. Enter your **Secret API Key**.
5. Enter your **Webhook Verification Token**.
6. Click **Save changes**.
Xendit is now enabled on your platform.
## Payment flows
**One-time payments** — Aikeedo creates a Xendit payment session (payment link) and redirects the customer to the Xendit-hosted payment page. After payment, the customer is redirected back to your platform.
**Recurring subscriptions** — Aikeedo creates a Xendit recurring plan and redirects the customer to an authorization page for the initial payment. Subsequent billing cycles are charged automatically. When a subscription is cancelled in Aikeedo, the corresponding Xendit recurring plan is inactivated.
Xendit recurring plans do not support billing dates on days 29–31. If a
subscription would fall on one of those days, Aikeedo automatically shifts the
anchor date to the 1st of the following month.
## Testing
Xendit provides a test mode accessible with test-mode API keys. To test your integration:
1. In the Xendit Dashboard, switch to **Test Mode** and copy your test-mode Secret API Key.
2. Enter the test key in **Settings > Payments > Xendit** in Aikeedo.
3. Use Xendit's test payment methods to simulate one-time and recurring payment scenarios.
4. Verify that webhook events are received and subscription statuses are updated correctly in Aikeedo.
Switch back to your live API key when you are ready to accept real payments.
## Troubleshooting
* **Payments not completing**: Verify that your secret API key is correct and that the account is active in Xendit.
* **Webhooks not received**: Confirm that the webhook URL is publicly accessible and that the correct event types are subscribed in the Xendit Dashboard.
* **Webhook verification failures**: Ensure the **Webhook Verification Token** in Aikeedo matches the token shown in the Xendit Dashboard under **Settings > Webhooks**.
* **Recurring plan errors**: Check that your Xendit account is enabled for recurring payments and that the selected currency is supported in your account region.
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
# YooKassa Integration
Source: https://docs.aikeedo.com/integrations/payment-gateways/yookassa
Configure YooKassa payment gateway in Aikeedo with API credentials and subscription handling for secure online payments in Russia and CIS countries.
YooKassa integration enables secure payment processing and subscription management for your Aikeedo platform, specifically designed for the Russian and CIS markets. This guide covers account setup and API configuration.
YooKassa integration is available as a separate plugin that must be purchased from the [Aikeedo Marketplace](https://aikeedo.com/marketplace/) before you can configure this payment gateway.
## Prerequisites
Before you begin, ensure you have:
* An active [YooKassa merchant account](https://yookassa.ru/)
* Access to your Aikeedo admin panel
* Your domain properly configured with SSL enabled
* A valid business registration in Russia or CIS countries
## Step 1: Set Up Your YooKassa Account
If you haven't already, sign up for a YooKassa merchant account:
1. Visit the [YooKassa website](https://yookassa.ru/) and click "Подключить" (Connect)
2. Follow the prompts to create and verify your merchant account
3. Complete the business verification process with required documents
4. Wait for account approval (typically 1-3 business days)
YooKassa requires business registration in Russia or CIS countries. Personal accounts are not supported for merchant services.
## Step 2: Obtain YooKassa API Credentials
To connect Aikeedo with YooKassa, you'll need to retrieve your API credentials:
### Get Your Shop ID
1. Log in to your [YooKassa Dashboard](https://yookassa.ru/my)
2. In the left sidebar, find your **Shop ID** under your organization name
* It will show your organization name with "ShopID XXXXXXX"
### Get Your API Secret Key
1. In the left sidebar, click on **Интеграция** (Integration)
2. Select **Ключи API** (API Keys) from the integration submenu
3. You'll find your **Секретный ключ** (Secret Key) in the API Keys section
Keep your Secret Key confidential! Never share it publicly or include it in client-side code. If you lose your key, you can regenerate it using the refresh icon in the dashboard.
## Step 3: Configure YooKassa in Aikeedo
Now that you have your YooKassa account set up, configure the integration in Aikeedo:
1. Log in to your Aikeedo admin panel
2. Navigate to **Payments** in the main menu
3. Click on **YooKassa**
### Details Section
Configure the general settings:
1. **Status**: Toggle the switch to enable YooKassa payments
2. **Charge Currency**: Select your preferred currency
* **Russian Ruble**: Use RUB for all transactions
* **Inherit**: Use your platform's default currency (e.g., USD) without conversion
* If you select a currency different from your default and have a currency rate provider set up, amounts will be automatically converted
3. **VAT code**: Select the appropriate VAT rate for Russian tax compliance
* This information is only for the YooKassa receipt
* Plan prices must be set tax inclusive
4. **Mode**: Choose between:
* **Test**: For testing payments with YooKassa's test environment
* **Live**: For processing real transactions
### Keys Section
Enter your API credentials:
1. **Shop ID**: Enter your YooKassa Shop ID (required)
2. **API secret key**: Enter your YooKassa Secret Key (required)
3. Click **Save changes** to apply your settings
Congratulations! YooKassa payments are now enabled on your Aikeedo platform.
## Testing Your Integration
Before going live, it's crucial to test your YooKassa integration:
1. Set the YooKassa payment gateway to "Test" mode in the Details section
2. Use [YooKassa's test card numbers](https://yookassa.ru/developers/payment-acceptance/testing-and-going-live/testing) to simulate various payment scenarios
3. Create a test subscription or product purchase
4. Verify that payments are processed correctly
YooKassa test environment uses special test card numbers and doesn't process real payments. Always test thoroughly before switching to live mode.
## Troubleshooting
If you encounter any issues with your YooKassa integration, try these steps:
1. **Verify API Credentials**: Double-check your Shop ID and Secret Key in the Keys section
2. **Check Mode Setting**: Ensure you're using Test mode for testing and Live mode for production
3. **Verify Currency**: Make sure your selected currency is supported by YooKassa
4. **Test Payments**: Use YooKassa's test card numbers to verify the integration works correctly
### Common Issues
Double-check your Shop ID and Secret Key. You can find these in your YooKassa Dashboard under Integration > API Keys.
Ensure you're using the correct mode (Test for testing, Live for production) and that your currency is supported.
Make sure you've selected the correct VAT code for your business type and that your plan prices are set tax inclusive.
## Additional Resources
* [YooKassa Developer Documentation](https://yookassa.ru/developers?lang=en)
* [YooKassa API Reference](https://yookassa.ru/developers/api?lang=en#intro)
* [Payment Methods Guide](https://yookassa.ru/developers/payment-acceptance/overview)
* [Testing Guide](https://yookassa.ru/developers/payment-acceptance/testing-and-going-live/testing)
By following this guide, you've successfully integrated YooKassa payments into your Aikeedo platform, providing your users with a secure and convenient payment experience tailored for the Russian and CIS markets.
# Serper API Integration
Source: https://docs.aikeedo.com/integrations/serper
Enhance your Aikeedo platform with Serper API's Google search capabilities. This guide walks you through setting up and leveraging Serper API for real-time search results in your Chat tool.
## Introduction
Aikeedo's Serper API integration unlocks real-time Google search capabilities for your platform. By integrating Serper.dev's API, you can significantly enhance your Chat tool, allowing users to access up-to-date search results directly within their conversations.
## Setting Up the Integration
Follow these steps to connect Serper API with your Aikeedo platform:
### Step 1: Obtain Your Serper API Key
1. If you don't have a Serper account, [sign up here](https://serper.dev/).
2. Once logged in, you'll be taken to your Serper dashboard.
3. In the left sidebar of the dashboard, click on the "API Key" menu item.
4. Copy your API key from the popup that appears—you'll need this for Aikeedo.
Keep your API key secure and confidential. It grants access to Serper API services and should not be shared publicly.
Serper provides a dashboard where you can monitor your API usage, including the number of requests made in the last 30 days and 24 hours, as well as your total credits used.
### Step 2: Configure Aikeedo
1. Log in to your Aikeedo admin panel.
2. Navigate to **Settings > Serper API**.
3. In the "API" section, enter your Serper API key in the "API Key" field.
4. Click **Save changes** to activate the integration.
Great job! Serper API is now integrated with your Aikeedo platform.
## Aikeedo Tools Powered by Serper API
Serper API integration enhances the following Aikeedo tool:
1. **Chat**: Enable real-time Google search results within conversations using the "Google search" capability.
## Best Practices
To make the most of your Serper API integration:
* Use clear and concise search queries for best results.
* Encourage users to specify their search intent when using the Google search capability.
* Monitor your API usage to manage costs effectively.
* Regularly update your integration to access the latest features and improvements.
## Troubleshooting
If you encounter issues with the Serper API integration, try these steps:
1. Verify that your API key is correct and active.
2. Check your Serper account for any usage limits or restrictions.
3. Ensure your Aikeedo platform is up to date.
4. If you receive error messages related to API access or quotas, verify your account status with Serper.
Can't find your API Key? Click the "Click here" link below the API Key field in the Aikeedo settings for additional guidance.
Remember to review Serper's usage policies and pricing to ensure compliance and manage costs effectively as you scale your search integration.
# Stability AI Integration
Source: https://docs.aikeedo.com/integrations/stabilityai
Enhance your Aikeedo platform with Stability AI's advanced image generation capabilities. This guide walks you through setting up and leveraging Stability AI's powerful models for creating unique and high-quality images.
## Introduction
Aikeedo's Stability AI integration unlocks advanced image generation capabilities for your platform. With access to Stability AI's cutting-edge models, you can significantly enhance your Imagine tool, allowing users to create unique and high-quality images from text descriptions.
## Setting Up the Integration
Follow these steps to connect Stability AI with your Aikeedo platform:
### Step 1: Obtain Your Stability AI API Key
1. If you don't have a Stability AI account, [sign up here](https://platform.stability.ai/sign-up).
2. Once logged in, click on your profile image in the top right corner of the page.
3. The API Keys page will open automatically. If not, select "API Keys" from the left side menu.
4. On the API Keys page, you'll see a list of your existing API keys.
5. If you don't have any keys, or want to create a new one, click the "+ Create API Key" button in the top right corner of the API Keys section.
6. Once created, you'll see your new API key in the list. The key itself will be partially hidden for security reasons.
7. Use the copy icon next to your API key to copy it to your clipboard—you'll need this for Aikeedo.
Keep your API key secure and confidential. It grants access to Stability AI services and should not be shared publicly. Stability AI masks part of the key in the dashboard for security reasons.
### Step 2: Configure Aikeedo
1. Log in to your Aikeedo admin panel.
2. Navigate to **Settings > StabilityAI**.
3. In the "API" section, enter your Stability AI API key in the "API Key" field.
4. Click **Save changes** to activate the integration.
Great job! Stability AI is now integrated with your Aikeedo platform.
## Aikeedo Tools Powered by Stability AI
Stability AI integration enhances the following Aikeedo tool:
1. **Imagine**: Create unique and high-quality images from text descriptions using Stability AI's advanced image generation models.
## Best Practices
To make the most of your Stability AI integration:
* Experiment with different models to find the best fit for your use case.
* Provide clear and detailed text prompts for optimal image generation results.
* Consider the style and complexity requirements of your project when selecting models.
* Use negative prompts to refine and exclude unwanted elements from generated images.
* Monitor your API usage to manage costs effectively.
* Regularly update your integration to access the latest models and features.
## Troubleshooting
If you encounter issues with the Stability AI integration, try these steps:
1. Verify that your API key is correct and active.
2. Check your Stability AI account for any usage limits or restrictions.
3. Ensure your Aikeedo platform is up to date.
4. If you receive error messages related to model access or quotas, verify your account status with Stability AI.
5. For model-specific issues, confirm that your account has access to the required models.
6. If you experience slow response times, consider using a different model or optimizing your prompts.
Regularly review your Stability AI usage and available model options to ensure smooth integration with Aikeedo.
Remember to review Stability AI's usage policies and pricing to ensure compliance and manage costs effectively as you scale your image generation integration.
# Manual Tax Engine
Source: https://docs.aikeedo.com/integrations/tax-engines/manual-tax
Configure flat and percentage tax rates manually in Aikeedo using the Manual Tax Engine plugin, with support for per-country rules and multiple stacked rates.
The Manual Tax Engine plugin lets you define your own tax rates without relying on any external service. You configure a global default rate as a fallback, then add per-country rules with one or more named rates each. Rates can be a percentage of the order amount or a fixed currency amount.
Manual Tax Engine is an additional plugin available for purchase from the
[Aikeedo Marketplace](https://aikeedo.com/marketplace/manual-tax/). Install it
from your admin panel before following this guide.
Tax law varies by jurisdiction. Consult a qualified tax professional to
determine the correct rates and rules for your situation. Aikeedo does not
provide tax advice.
## Opening the settings
Navigate to **Settings > Tax Engines** in your admin panel, then click **Manual Tax**.
## Default tax rate
The **Default Tax Rate** section at the top of the page applies a fallback rate to any customer whose billing address does not match a country rule.
* Use the toggle to enable or disable the default rate entirely.
* Enter the rate value in the **Rate** field. The rate is a percentage by default — click the **%** button to switch to a fixed currency amount instead.
## Country rules
The **Rules** section lists per-country tax rules. Each rule overrides the default rate for customers billing from that country and can contain multiple named rates that are added together.
### Adding a rule
1. Click **+ Add rule**.
2. Select a country from the dropdown.
3. If the selected country has subdivisions (states or provinces), an additional **Subdivision** dropdown appears. Selecting a subdivision is optional — leave it blank to apply the rule to the entire country, or select a specific state/province to target that subdivision only.
4. Click **Add rule** to confirm.
The new rule appears in the rules list. Click on it to open the rule and add tax rates.
### Adding rates to a rule
Each country rule can have one or more named rates:
1. Click on a country rule to open it.
2. Click **+ Add rate**.
3. Enter a **name** (shown to the customer, e.g. "VAT") and a **value** (percentage or fixed amount).
4. Repeat for any additional rates.
Multiple rates within a rule are added together. For example, a rule with 18% VAT and 14% Custom Handling Fee results in a combined 32% tax for customers in that country.
### Zero-rating a country
To explicitly exempt a country from tax, add a rule for that country and set the rate value to `0`. This ensures the default rate does not apply to customers from that country.
When a country-level rule (no subdivision selected) exists for a country,
subdivision-level rules for that same country are ignored. Subdivision rules
only apply when there is no country-level rule for that country.
## Saving changes
Click **Save changes** at the bottom of the page to apply your configuration.
## Testing
After configuring your rules, create a test purchase using a billing address that matches each of your configured countries. Verify that the correct tax rates appear in the checkout summary.
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
# Tax Engines
Source: https://docs.aikeedo.com/integrations/tax-engines/overview
Configure tax calculation for your Aikeedo platform using tax engine plugins to collect the correct tax on subscription and one-time purchases.
## Overview
Aikeedo v4.0 introduces a core tax infrastructure layer that enables tax calculation on purchases made through your platform. A tax engine is a plugin that calculates the tax amount on each order based on the customer's billing address and the configured rules or connected tax service.
You can install multiple tax engine plugins and switch between them at any time from your billing settings. Only one engine is active at a time, but all installed engines remain configured and ready to use.
## Available tax engine plugins
Define flat and percentage tax rates manually by country and subdivision. Full control, no external services required.
Automatic tax calculation via the Stripe Tax Calculations API. Requires Stripe to be configured as your payment gateway.
## Selecting the active tax engine
Installing a tax engine plugin does not activate it automatically. You select the active engine from your billing configuration:
1. Navigate to **Settings > Billing** in your admin panel.
2. Under the **Tax** section, open the **Tax engine** dropdown.
3. Select the engine you want to use, or choose **No tax** to disable tax calculation entirely.
4. Click **Save changes**.
The **Tax Engines** page (**Settings > Tax Engines**) is where you configure each individual engine's rules and settings independently of which one is currently active.
## Tax base
In **Settings > Billing > Tax**, you can also set the **Tax base** — the amount that tax is calculated against:
| Option | Description |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------- |
| **Net after coupon** | Tax is calculated on the discounted amount after any coupon is applied. If no coupon applies, the full plan list price is used as the base. |
| **Full plan list price** | Tax is always calculated on the full plan price, regardless of any discounts. |
## Stripe Automatic Tax Collection
If you use Stripe as your payment gateway with the **Hosted Checkout** form type, there is an additional option that does not require a tax engine plugin: [Stripe Automatic Tax Collection](/integrations/payment-gateways/stripe#stripe-automatic-tax-collection).
With this feature enabled, Stripe handles both tax calculation and collection end-to-end within its hosted checkout flow. This only applies to payments processed through Stripe — other payment gateways are unaffected. It is also distinct from the Stripe Tax Engine plugin, which calculates tax for non-hosted Stripe checkout flows.
## How tax is applied
1. A customer proceeds to checkout with a billing address on file.
2. Aikeedo calls the active tax engine with the order amount and billing address.
3. The tax engine returns one or more tax lines (name, rate, amount).
4. The tax lines are displayed to the customer and included in the total.
5. The payment gateway collects the full amount, including tax.
Tax is calculated based on the customer's **workspace billing address**.
Customers must have a billing address on file for tax to be applied. If no
address is present, no tax is charged.
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
# Stripe Tax Engine
Source: https://docs.aikeedo.com/integrations/tax-engines/stripe-tax
Configure automatic tax calculation in Aikeedo using the Stripe Tax Engine plugin, powered by the Stripe Tax Calculations API.
The Stripe Tax Engine plugin integrates Aikeedo's billing system with the [Stripe Tax Calculations API](https://stripe.com/docs/tax). When active, it automatically determines the correct tax amount for each purchase based on the customer's billing address and your Stripe Tax configuration — without requiring you to manually define rates or rules.
Stripe Tax Engine is an additional plugin available for purchase from the
[Aikeedo Marketplace](https://aikeedo.com/marketplace/stripe-tax/). Install it
from your admin panel before following this guide.
This plugin calculates tax for standard (non-hosted) Stripe checkout flows. If
you use [Stripe Hosted
Checkout](/integrations/payment-gateways/stripe#form-types), consider using
[Stripe Automatic Tax
Collection](/integrations/payment-gateways/stripe#stripe-automatic-tax-collection)
instead, which handles tax entirely within the Stripe-hosted flow.
## Prerequisites
The settings page includes a built-in checklist that shows whether all prerequisites are met:
* **Stripe integration enabled** — Stripe must be enabled in your payment settings. Tax is only calculated while Stripe is active; if Stripe is disabled, no tax lines are added.
* **Secret key configured** — your Stripe secret key must be set in the Stripe payment settings.
* **Stripe Tax active on account** — Stripe Tax must be activated in your [Stripe Dashboard](https://dashboard.stripe.com/tax/registrations), with registrations for the jurisdictions where you have tax obligations.
Tax will only be calculated for jurisdictions where you have an active
registration in your Stripe account. Review [Stripe's Tax
documentation](https://stripe.com/docs/tax) to understand what registrations
are required for your business.
## Configuration
Navigate to **Settings > Tax Engines > Stripe Tax** in your admin panel.
### Product tax code (optional)
A Stripe product tax code tells Stripe what you sell (for example, SaaS vs. physical goods) so the correct tax rules apply. Enter the code in the **Tax code** field (format: `txcd_...`).
If left blank, Stripe uses the default tax code configured in your Stripe Dashboard Tax settings.
To find the right code:
* [Stripe Tax: product tax categories](https://stripe.com/docs/tax/tax-categories) — lists common codes for software, SaaS, and other product types.
* [Stripe Dashboard: Tax settings](https://dashboard.stripe.com/settings/tax) — set your default product tax code and manage Stripe Tax for your account.
### API keys
Stripe Tax uses the same API keys as your Stripe Payments integration. No separate key configuration is required on this page.
## Activating the plugin
Once configured, select **Stripe Tax** as the active tax engine in **Settings > Billing Configuration > Tax engine**. See the [Tax Engines overview](/integrations/tax-engines/overview#selecting-the-active-tax-engine) for details.
## Troubleshooting
* **Checklist items not passing**: Address each failing item — ensure Stripe is enabled in Payments, the secret key is set, and Stripe Tax is active on your Stripe account.
* **Tax not appearing at checkout**: Confirm that the customer has a billing address on file and that you have active Stripe Tax registrations for their jurisdiction.
* **Incorrect tax amounts**: Review your Stripe Tax registrations and product tax code to ensure they match your product category and the customer's jurisdiction.
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
# xAI Integration
Source: https://docs.aikeedo.com/integrations/xai
Enhance your Aikeedo platform with xAI's Grok models. This guide explains how to set up and configure xAI integration for your platform.
## Introduction
Aikeedo's xAI integration allows you to leverage Grok models for AI-powered conversations and content generation. This guide will help you set up and manage the xAI integration in your platform.
## Setting Up the Integration
Follow these steps to connect xAI with your Aikeedo platform:
### Step 1: Obtain Your xAI API Key
1. Sign up for xAI API access at [console.x.ai](https://console.x.ai/)
2. Navigate to API Keys page
3. Generate a new API key by clicking **Create API Key**
4. Copy the generated API key for use in Aikeedo
Store your API key securely and never share it publicly. The key provides direct access to xAI services.
### Step 2: Configure Aikeedo
1. Log in to your Aikeedo admin panel
2. Navigate to **Settings > xAI / Grok**
3. Paste your xAI API key into the API Key field
4. Click **Save Changes** to activate the integration
Once saved, xAI services will be available across your Aikeedo platform.
## Aikeedo Tools Using xAI
The xAI integration powers these Aikeedo tools:
1. **Chat**: Engage in conversations using Grok's capabilities
2. **Writer**: Generate content with Grok's language understanding
3. **Coder**: Get coding assistance and explanations
## Best Practices
To optimize your xAI integration:
* Monitor your API usage regularly
* Keep your API key secure and up to date
* Test the integration after setup to ensure everything works correctly
## Troubleshooting
If you encounter issues:
1. Verify your API key is correct and active
2. Check if your xAI account has active subscription
3. Ensure your Aikeedo platform is updated to the latest version
4. Verify your account has access to the required models
If you receive authentication errors, double-check your API key and ensure your xAI subscription is active.
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
# Commercial License Resources
Source: https://docs.aikeedo.com/overview/commercial-resources
Access exclusive resources for Extended/Commercial License users, including Figma designs and pricing calculators.
Here, you'll find valuable tools and assets exclusively available to our Extended/Commercial License users. These resources are designed to enhance your experience and help you make the most of Aikeedo's powerful AI-driven content creation capabilities.
## Why are these resources exclusive?
These supplementary resources are offered as a complimentary benefit to our Extended/Commercial License holders. Here's why:
1. **SaaS Focus**: These tools are primarily useful if you're using Aikeedo as a SaaS (Software as a Service) platform and plan to charge end users for access.
2. **Added Value**: While not essential for the core functionality of Aikeedo, these resources provide additional support for business-oriented implementations.
3. **Specialized Use**: The Figma designs and pricing calculator are tailored for users who are looking to customize and monetize their Aikeedo instance.
These resources do not affect any functionality within the Aikeedo app itself. They are provided as complementary tools to assist Extended/Commercial License users in maximizing the potential of their Aikeedo implementation.
## Accessing Commercial Resources
Our commercial resources, including the Figma design file and the Aikeedo Price Calculator, are stored in a single, secure folder. Here's how to gain access:
1. **Important:** Have your Extended/Commercial License key (purchase code) ready before proceeding. Requests without a valid license code will not be processed.
2. Visit the [Aikeedo Commercial Resources](https://drive.google.com/drive/folders/1AHqGqHT6tQyRwRxS2v2j0RngxGbqr_pA?usp=drive_link) link.
3. In the "Message (optional)" text area, enter your Extended/Commercial License key.
4. Click the "Request access" button to submit your access request.
5. Our team will verify your license and grant you access to the folder containing all commercial resources.
These resources are exclusive benefits for Extended/Commercial License users and are not included in the standard Aikeedo package. Always include your license code when requesting access to ensure prompt processing of your request.
## Available Resources
### 1. Figma Design File
Get access to our professionally crafted Figma design file for the Aikeedo landing page. This resource is perfect for customizing your Aikeedo instance or drawing inspiration for your own AI-powered projects.
### 2. Aikeedo Price Calculator
Our custom-built price calculator helps you determine optimal pricing strategies for your Aikeedo-powered services. This tool is invaluable for setting up your credit system and pricing plans.
## Using the Price Calculator
Our price calculator is designed to be user-friendly and intuitive, even for those without a technical background. Here's a quick guide to get you started:
1. **Input Fields**: Look for green cells in the spreadsheet. These are where you'll enter your data.
* Define the total number of credits you want to sell per 1 USD.
* Set your desired profit margin.
2. **Output Fields**: Orange cells display the calculated results.
* These show the credit conversion ratios you'll use in the Aikeedo Admin UI.
3. **Pricing Plans**: Scroll down to find sections where you can define pricing plans in your preferred currency.
* The calculator will automatically determine the maximum credits for each plan based on your defined profit margin.
Hover over cells with small black triangles in the corner for additional guidance and explanations.
## Best Practices
* **Experiment with Different Scenarios**: Use the calculator to model various pricing strategies before implementing them in your Aikeedo instance.
* **Regular Reviews**: Periodically revisit your pricing structure to ensure it aligns with your business goals and market conditions.
* **Combine with Analytics**: Use the insights from the price calculator in conjunction with your user analytics for a comprehensive pricing strategy.
* **Customize Your Design**: Leverage the Figma file to create a unique look for your Aikeedo instance that aligns with your brand identity.
Thank you for choosing Aikeedo! We're excited to see how you'll leverage these resources to create an outstanding AI-powered content creation platform.
# File Structure
Source: https://docs.aikeedo.com/overview/file-structure
Understand the Aikeedo package structure, including server files, documentation, and support resources to prepare for installation.
Before you begin, make sure you've completed your [Aikeedo purchase](https://aikeedo.com?utm_source=docs). If you haven't yet, head over to our website to get started!
## Overview
After purchasing Aikeedo, you'll receive a ZIP archive containing all the necessary files to set up your AI-powered platform. This guide will walk you through the contents of your download and explain the purpose of each component.
## Unpacking Your Aikeedo Files
Follow these simple steps to access your Aikeedo files:
1. **Download the ZIP archive**: After your purchase, you'll receive a link to download the Aikeedo package.
2. **Locate the download**: Find the ZIP file in your computer's download folder or the location you specified.
3. **Extract the contents**: Use your computer's built-in unzip tool or a third-party application like 7-Zip to extract the files.
If you're unsure how to extract ZIP files on your operating system, a quick web search for "how to unzip files on \[Your OS]" will provide step-by-step instructions.
## Understanding the File Structure
Once you've extracted the ZIP archive, you'll find the following components:
### 1. documentation.pdf
This PDF file contains a direct link to the comprehensive online documentation you're currently reading. It's a quick way to access the most up-to-date information about Aikeedo.
Pro tip: Bookmark the documentation link for easy access in the future!
### 2. support.pdf
This PDF contains information about our support options and how to access paid support services if you need assistance with Aikeedo.
For technical support and assistance, please refer to the support information in this PDF for available support packages and contact details.
### 3. aikeedo-server-files.zip
This is the heart of your Aikeedo package. This ZIP file contains all the core files required to set up and run Aikeedo on your server. Here's what you need to know about it:
* It includes the main application files, configuration templates, and any necessary scripts.
* You'll need to extract and upload these files to your server during the installation process.
* Detailed instructions for handling these files can be found in our [Installation Guide](/setup/installation).
Always keep a backup of the `aikeedo-server-files.zip` in a safe place. You may need it for future updates or if you decide to move your installation to a different server.
## Next Steps
Now that you understand the contents of your Aikeedo download, you're ready to move forward with the installation process. Here's what to do next:
Ensure your hosting environment is compatible with Aikeedo
Follow step-by-step instructions to set up Aikeedo on your server
Configure your Aikeedo instance with technical settings
By following this guide and the subsequent installation steps, you'll be well on your way to launching your own AI-powered platform with Aikeedo. Good luck, and welcome to the Aikeedo community!
# Get Aikeedo
Source: https://docs.aikeedo.com/overview/get-aikeedo
Purchase Aikeedo license from official channels, download the software package, and access your license key for installation.
This guide covers the Aikeedo purchase process, what you receive after purchase, and how to access your installation files.
## Purchasing Aikeedo
Aikeedo licenses are available through our official website:
Purchase directly from our official website to stay up-to-date with the latest offers and updates.
## What You'll Receive
Upon completing your purchase, you'll gain access to:
1. **Aikeedo Software Package**: A downloadable ZIP file containing the complete Aikeedo source code, ready for installation.
2. **License Key**: A unique activation key that you'll use to validate your Aikeedo installation on your server.
These resources empower you to deploy and customize Aikeedo to meet your specific requirements.
Keep your license key secure and confidential. It's tied to your purchase and is required for installation and updates.
## Understanding Your License
Your Aikeedo license grants you the right to use the software according to the terms outlined in our License Agreement. Here are some key points to remember:
* Each license is valid for a single installation (one domain).
* You can create derivative works and customize Aikeedo for your needs.
* Redistribution or resale of Aikeedo is not permitted.
For a complete understanding of your rights and obligations, please review our [License Agreement](https://aikeedo.com/license/).
## Accessing Your Purchase
After your purchase is complete, you'll receive an email with instructions on how to download your Aikeedo package. Here's what to do next:
1. **Check your email**: Look for a message from Aikeedo (via LemonSqueezy).
2. **Download the ZIP file**: Follow the provided link to download the Aikeedo software package.
3. **Locate your license key**: Your unique license key will be included in the email or your account dashboard.
## Next Steps
With your Aikeedo package ready, proceed to installation:
Review the package contents and directory organization
Verify your hosting environment meets all compatibility requirements
Follow step-by-step instructions to install Aikeedo on your server
Complete technical configuration including cron jobs
Configure all application settings and features
You now have everything needed to begin installing Aikeedo.
# Introduction to Aikeedo
Source: https://docs.aikeedo.com/overview/introduction
Discover how to launch your AI SaaS business with Aikeedo - a self-hosted, source-available PHP platform for AI-powered content generation and monetization.
## Getting started
Aikeedo is a ready-made PHP software designed to help you launch your AI SaaS business quickly and efficiently. Whether you're new to AI services or looking to expand your offerings, Aikeedo provides the tools and flexibility you need to get started and grow your business.
A step by step guide to installing Aikeedo on your server
Explore prompt templating syntax and how to use it
Explore development guide to customize Aikeedo to your needs
Explore API basics and overview for integrating Aikeedo with your applications
## Your AI SaaS business, ready by this week!
Aikeedo is a powerful, ready-made PHP software designed to launch your AI SaaS business quickly and generate revenue fast. With its customizable features, Aikeedo stands out as a **self-hosted**, **source-available**, and **standalone SaaS-ready** PHP web application.
* **Self-Hosted**: Take full control of your data and hosting environment. Enjoy the flexibility of managing your platform on your own terms.
* **Source-Available**: We provide the full, non-obfuscated source code with your license purchase. This allows you to explore, customize, and tailor the software to your specific needs, giving you complete control over your AI SaaS platform.
* **Standalone SaaS Ready**: Aikeedo is not just a web application; it's a complete Software as a Service (SaaS) solution. Deploy seamlessly and experience the benefits of a robust content platform.
With Aikeedo, you can have your AI SaaS business up and running in a week, giving you a head start in the competitive AI market.
## Connect with @heyaikeedo
Stay updated and connect with us on social media! Follow us [(@heyaikeedo)](https://twitter.com/heyaikeedo) for the latest news, updates, and community discussions. Join the conversation, share your experiences, and be part of the Aikeedo community.
Explore more sections of our documentation to dive deeper into the features, installation guides, and best practices. Let's embark on this exciting journey together!
# Server Requirements
Source: https://docs.aikeedo.com/overview/server-requirements
Complete server requirements for Aikeedo installation including PHP 8.2+, MySQL 8.0+, required extensions, and recommended hosting specifications.
This guide outlines the necessary components and configurations to ensure your server is ready to host Aikeedo efficiently.
## Core Requirements
### PHP and MySQL Versions
Aikeedo requires up-to-date versions of PHP and MySQL to ensure optimal performance and security:
8.2 or later
8.0 or later
Using the latest stable versions is recommended for the best experience and to take advantage of the newest features and security updates.
### Essential PHP Extensions
To run Aikeedo smoothly, make sure your PHP installation includes these extensions:
* ctype
* curl
* dom
* fileinfo
* intl
* json
* libxml
* mbstring
* openssl
* pcre
* phar
* simplexml
* tokenizer
* xml
* xmlwriter
* zip
Most of these extensions are typically included in standard PHP installations. If you're unsure, consult your hosting provider or server administrator.
## Minimum Server Requirements
To ensure optimal performance of Aikeedo, we recommend the following minimum server specifications:
2 GB RAM or more
2 vCPUs or more
For our demo environment, we use a VPS with 4 GB Memory and 2 Intel vCPUs on DigitalOcean. This setup provides excellent performance for most use cases.
### Hosting Recommendations
While Aikeedo can run on various hosting environments, we strongly recommend using a Virtual Private Server (VPS) for better control and performance, especially for commercial use cases.
Start with a smaller VPS configuration and resize as needed. This approach allows you to scale your resources based on your actual usage and growth.
Popular VPS providers that work well with Aikeedo include:
* DigitalOcean (Use our [referral link](https://m.do.co/c/084136521a6a) for \$200 in credits, valid for 60 days)
* Vultr (Use our [referral link](https://www.vultr.com/?ref=9690154) for \$300 in credits, valid for 30 days)
* Amazon Web Services ([AWS](https://aws.amazon.com/))
While most shared hosting environments are supported, they may have limitations that could affect Aikeedo's performance. For the best experience, especially for commercial use, we strongly advise using a VPS.
Special note about Cloudways: The text streaming function doesn't work on Cloudways servers due to their complicated server stack. Unfortunately, they don't provide root access to the server to modify the configuration. This issue cannot be resolved at the application level as it's not application-related. If text streaming is crucial for your use case, we recommend choosing a different hosting provider.
## PHP Configuration
Proper PHP configuration is crucial for Aikeedo to function correctly. Adjust the following settings in your `php.ini` file:
* **File Uploads:** On
* **Post Max Size:** 25MB or more
* **Upload Max Filesize:** 25MB or more
If you're not familiar with editing the `php.ini` file, don't worry! Many hosting control panels provide user-friendly interfaces to adjust these settings. If you need help, check out the [PHP configuration guide](https://www.php.net/manual/en/configuration.file.php) or contact your hosting provider.
## Web Server Compatibility
Aikeedo is designed to work with popular web servers, ensuring flexibility in your hosting setup:
Fully tested and supported
Fully tested and supported
While Apache and Nginx are our primary supported web servers, Aikeedo is built to be compatible with most standard web server configurations.
New to web server setup? Check out these helpful guides:
* [How to install Apache](https://httpd.apache.org/docs/2.4/install.html)
* [How to install Nginx](https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-open-source/)
## Next Steps
Once you've confirmed that your server meets these requirements, you're ready to move on to the installation process!
Learn how to install Aikeedo on your server
# Chatbots
Source: https://docs.aikeedo.com/plugins/chatbots
Install and configure the Chatbots plugin to let your subscribers build and embed AI-powered chatbots on their own websites.
The Chatbots plugin is currently **experimental**. It is fully functional, but
the API and admin configuration options may change in future releases.
The Chatbots plugin adds a chatbot builder to your Aikeedo platform. Once installed, your subscribers can create AI-powered chatbots from within their workspace, train them on custom knowledge base sources, and embed the widget on their own websites. All conversations and contacts from the embedded widget are tracked in the subscriber's workspace inbox.
## Prerequisites
* Aikeedo v4.0.0 or later
* At least one AI provider configured (OpenAI, Anthropic, Cohere, xAI, Ollama, or a custom OpenAI-compatible provider)
* Access to your Aikeedo admin panel
## Installation
The Chatbots plugin is available for purchase from the [Aikeedo Marketplace](https://aikeedo.com/marketplace/chatbots/).
1. Purchase and download the plugin package.
2. In your admin panel, navigate to **Plugins** and upload the package.
3. Click **Install** and follow the on-screen instructions.
Once installed, the Chatbots, Sources, Inbox, and Contacts sections become
available in your subscribers' workspaces.
## Admin settings
### Platform-level settings
Navigate to **Settings > Features > Chatbots** in your admin panel to configure platform-wide settings.
**General**
* **Status** — enable or disable the Chatbots feature across your entire platform.
**Powered by**
Controls the branding shown at the bottom of all embedded chatbot widgets:
* **Icon** — upload your brand icon (PNG, SVG, or WEBP, recommended 64×64px).
* **Brand name to display** — the name shown next to the "Powered by" label. Leave empty to hide the branding section entirely.
* **Link to the brand** — the URL the branding label links to.
**Instruction Templates**
Predefined system prompts that subscribers can select when configuring their chatbot agent:
* **Enable instruction templates** — when enabled, subscribers see a template selector when setting up their chatbot's agent instructions.
* **Manage Instructions** — opens the instruction templates editor where you can create, edit, and import built-in prompt templates. A set of ready-to-use templates (e.g. "Base instructions", "Customer support agent") can be imported with one click.
### Plan-level settings
Per-plan chatbot controls are in the **Extensions** tab of each plan's configuration (**Plans > \[plan name] > Extensions > Chatbots**):
* **Allow Branding Removal** — when enabled, subscribers on this plan can hide the "Powered by" text from their chatbot widget.
* **Chatbot Limit** — maximum number of chatbots a subscriber on this plan can create. Leave blank to allow unlimited chatbots.
## Supported AI providers
The Chatbots plugin works with all AI providers already configured on your platform:
* OpenAI
* Anthropic
* Cohere
* xAI (Grok)
* Ollama
* Any custom OpenAI-compatible provider
Subscribers choose which model powers their chatbot from the models available on their plan.
## Subscriber experience (overview)
The chatbot builder is subscriber-operated, but understanding its structure helps you support your users.
### Creating a chatbot
Subscribers navigate to **Chatbots** in their workspace sidebar and click **+ Add new**. They enter a chatbot name (internal only — not visible to end users) to create it.
### Chatbot editor
Each chatbot has a left-sidebar editor with the following sections:
**General**
* **Name** — internal identifier, not shown to end users.
* **Access** — either **Only me** (only the owner can configure it) or **Workspace** (all workspace members can configure it). Conversations, contacts, and inbox are always shared with all workspace members.
* **Status** — toggle between Published and unpublished.
**Agent**
* Configure the AI model, instructions (system prompt), and select an instruction template if enabled.
**Train**
* Add knowledge base sources to ground the chatbot's responses. Sources can be added as:
* **Select sources** — pick from existing Sources in the workspace
* **Add files** — upload documents or PDFs directly
* **Add links** — add URLs to crawl
**Widget > Content**
* Configure the three widget spaces:
* **Home** — landing screen with welcome message, quick-action buttons, and links
* **Messages** — the main conversation interface
* **Help** — FAQ links and a help center button
**Widget > Style**
* **Color scheme** — Light or Dark
* **Position** — Right or Left
* **Chat icon** — custom launcher icon (PNG, SVG, WEBP up to 1MB)
* **Colors** — primary color and text color overrides
**Widget > Security**
* **Domain restrictions** — restrict the widget to specific trusted domains. Supports wildcards (e.g. `*.example.com`). Note that `*.example.com` does not include the apex domain `example.com` — add it separately if needed. Leave the list empty to allow the widget on any domain.
* **Identity verification** — generate a JWT secret key to verify logged-in end-users. Enables personalized, secure interactions.
**Widget > Deploy**
* Copy the JavaScript embed snippet and paste it into any website's HTML to install the widget.
**Engagement > Conversations**
* All conversations initiated through the embedded widget, with full message history and contact details.
**Engagement > Contacts**
* All contacts captured through the widget, including first seen date, location, IP, and conversation history.
## Troubleshooting
* **Chatbots section not appearing after installation**: Clear the admin cache via **Settings > Advanced > Clear Cache** and reload.
* **Chatbot not responding**: Verify that at least one AI provider is configured and that the subscriber's plan grants access to at least one model.
* **Widget not loading on a website**: Check that the website's domain is listed under trusted domains in the chatbot's Security settings, or that domain restriction is disabled.
* **"Powered by" still visible after plan allows removal**: Confirm that **Allow Branding Removal** is enabled on the subscriber's plan, and that the subscriber has toggled it off in their widget settings.
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
# Application Configuration
Source: https://docs.aikeedo.com/setup/configuration
Complete guide to configuring your Aikeedo application settings after installation.
After completing the initial technical setup, you'll need to configure your Aikeedo application to match your business requirements. This guide provides a comprehensive checklist of all settings you should review and configure.
You can configure these settings in any order, but we recommend following this checklist to ensure you don't miss any important configurations.
## Essential Settings Checklist
### General Settings
Configure your site's core details including website name, domain settings, SSL configuration, landing page, default app page, and SEO settings.
Complete step-by-step instructions for configuring all general settings including domain, SSL, and SEO optimization.
### Public Details
Configure your business information and social media presence at **Settings > Public Details**:
**Business Details:**
* **Business Name**: Your company or organization name
* **Business Address**: Complete business address for legal and contact purposes
**Social Media Accounts:**
* X (Twitter), Facebook, Instagram, TikTok
* Discord, LinkedIn, YouTube, GitHub
* Telegram, VK (VKontakte)
Social media links are optional but help establish your brand presence and provide additional ways for users to connect with your business.
These details appear in your site footer and contact pages, building trust and credibility with your users.
### Legal Policies
Configure your legal documents at **Settings > Policies**:
* **Terms of services**: Define usage terms and conditions for your platform
* **Privacy policy**: Explain how you collect, use, and protect user data
* **Refund policy**: Set clear expectations for refunds and returns
**Important Features:**
* **Markdown support**: Format your policies using Markdown syntax for better readability
* **External redirection**: Include full URLs in content to redirect users to external policy pages
Ensure your policies comply with applicable laws and regulations in your jurisdiction. Consider consulting with a legal professional if needed.
### Features & Models
Go to **Settings > Features** to control features available to your users. Disable features you don't plan to offer to keep your interface clean and focused.
Navigate to **Settings > Models** to activate specific AI models.
Models must be enabled globally here before they can be used. You'll also need to configure the corresponding AI provider integrations.
### Branding
Customize your platform's look and feel at **Settings > Branding**.
For detailed instructions, see our [Branding Guide](/website-basics/branding).
### Billing & Payments
#### Credit System
Configure credit ratios at **Settings > Credit Ratios**:
* Set how credits convert to different AI operations
* Define credit costs for different models
* Adjust ratios based on your pricing strategy
Learn more in our [Unified Credit System](/billing/unified-credit-system) documentation.
#### Plans & Subscriptions
Set up your subscription plans at **Settings > Billing**:
* Create subscription tiers (Free, Pro, Enterprise, etc.)
* Define credit allocations per plan
* Set pricing for each tier
For comprehensive guidance, see our [Billing Overview](/billing/overview) and [Plans, Snapshots & Subscriptions](/billing/plans-snapshots-subscriptions) guides.
#### Payment Gateways
Configure payment processors at **Settings > Payments**:
Set up Stripe for card payments and subscriptions
Configure PayPal for alternative payment options
#### Exchange Rates
Set up currency conversion at **Settings > Exchange**. See our [Currency API Integration](/integrations/currency-api) guide for details.
### Email Configuration
Configure email delivery at **Settings > Email**:
* Choose your email delivery method (SMTP, API, etc.)
* Configure SMTP server settings
* Test email delivery
Follow our comprehensive email setup guide
Also see: [SMTP Configuration](/email/smtp) for detailed SMTP setup instructions.
### Integrations
Connect third-party services at **Settings > Integrations**:
#### AI Provider Integrations
* [OpenAI](/integrations/openai) - GPT models
* [Anthropic Claude](/integrations/claude) - Claude models
* [Cohere](/integrations/cohere) - Cohere models
* [xAI](/integrations/xai) - Grok models
* [Custom LLM Servers](/integrations/ollama) - Self-hosted models
* [Stability AI](/integrations/stabilityai) - Stable Diffusion
* [Clipdrop](/integrations/clipdrop) - AI image tools
* [Fal.ai](/integrations/falai) - Fast AI generation
* [ElevenLabs](/integrations/elevenlabs) - Voice synthesis
* [Google Cloud Platform](/integrations/gcp) - Speech services
* [Azure](/integrations/azure) - Microsoft speech services
#### Other Integrations
* [Google Analytics](/integrations/google-analytics) - Track site usage
* [Google Tag Manager](/integrations/google-tag-manager) - Manage tracking tags
* [OneSignal](/integrations/onesignal) - Push notifications
* [Intercom](/integrations/intercom) - Customer support chat
* [Custom Scripts](/integrations/custom-scripts) - Add custom tracking codes
Start with one or two AI providers to test your setup, then expand to additional providers based on user demand and your business needs.
### Authentication
Configure user authentication options at **Settings > Authentication**:
* [Account Settings](/authentication/accounts-settings) - Configure registration and login
* [Social Login Providers](/authentication/identity-providers/google) - Add Google, Facebook, GitHub, LinkedIn
* [CAPTCHA](/authentication/captcha) - Prevent spam and bot registrations
## Verification Checklist
Before launching your platform to users, verify you've completed:
* [ ] General settings configured (site name, domain, SEO)
* [ ] Public details added (company info, social links)
* [ ] Legal policies published (Terms, Privacy)
* [ ] Features enabled for your target audience
* [ ] AI models activated and tested
* [ ] Subscription plans created and priced
* [ ] Payment gateways configured and tested
* [ ] At least one AI provider configured
* [ ] Email delivery configured and tested
* [ ] Analytics tracking set up (optional)
* [ ] Create a test user account
* [ ] Test subscription purchase flow
* [ ] Verify AI features work correctly
* [ ] Confirm email delivery
## Next Steps
After completing your application configuration:
1. **Test Everything**: Create test accounts, make test purchases, and verify all features work as expected
2. **Customize Branding**: Review our [General Settings](/website-basics/essentials) and [Branding](/website-basics/branding) guides
3. **Advanced Configuration**: Explore [Advanced Topics](/advanced/localization) like localization and email templates
4. **Launch**: Open your platform to real users and start growing your business!
Congratulations! Your Aikeedo platform is now fully configured and ready to serve users.
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
# Initial Setup
Source: https://docs.aikeedo.com/setup/initial-setup
Configure cron jobs, set your site domain, and enable SSL for your Aikeedo installation to ensure proper functionality and security.
After successfully installing Aikeedo, complete these crucial technical setup steps to ensure your application runs smoothly and securely.
## Setting Up the Cron Job
A cron job is essential for automating recurring tasks in Aikeedo, particularly for renewing subscription usages.
### Frequency and Interval
* **Renewal Period:** Subscription usages are renewed every 30 days.
* **Recommended Interval:** The cron task should run once per minute for optimal performance.
Some servers may limit cron tasks to a minimum interval of 15 minutes. In such cases, subscriptions will still renew, but there might be a slight delay of up to 15 minutes.
### Configuring the Cron Task
It is important that the cron job runs as the same user that your web server uses to serve your Aikeedo application. On many Linux systems, this user is typically `www-data` (for servers running Apache or Nginx), but it may differ depending on your server setup (for example, `apache`, `nginx`, or another user). Running the cron job as the correct user ensures that file permissions and environment variables are consistent with your web server, preventing potential permission issues.
#### How to Set Up the Cron Job for the Web Server User
1. **Determine the Web Server User:**
* On most systems, the user is `www-data`.
* You can check the running user with:
```shell theme={null}
ps aux | egrep '(apache|nginx|httpd)'
```
* Look for the user column in the output.
2. **Edit the Crontab for the Web Server User:**\
Use the following command, replacing `www-data` with your web server user if different:
```shell theme={null}
sudo crontab -u www-data -e
```
This opens the crontab editor for the specified user.
3. **Add the Cron Entry:**\
Add the following line to the crontab:
```shell theme={null}
* * * * * /usr/bin/php /path/to/app/root/cron.php
```
Replace `/path/to/app/root/` with the actual path to your Aikeedo application's root directory.
If your server uses a different user for the web server (such as `apache` or `nginx`), substitute `www-data` with the appropriate username in the `sudo crontab -u USERNAME -e` command.
#### Important: File Permissions and Cache Issues
While it is technically possible to run the cron job as `root` or another user, this is **not recommended**. If the cron job runs as a different user than your web server (for example, as `root`), the application may create new files in the app cache with incorrect ownership. This can cause issues when you try to clear the cache from the Aikeedo admin panel (Status page).
* **How to Detect the Issue:**\
When you clear the cache from the Status page, you should see a success message in the toast notification. If you do **not** see a success message, it likely means the app is unable to clear the cache due to file permission issues.
* **How to Fix:**\
To resolve this, reset the ownership of your app files to the web server user (e.g., `www-data`) by running:
```shell theme={null}
sudo chown -R www-data:www-data /path/to/app/root
```
Replace `/path/to/app/root` with the actual path to your Aikeedo application's root directory.
After fixing the permissions, ensure the cron job is running as the correct user to prevent this issue from recurring.
Always run the cron job as the same user that your web server uses (typically `www-data`, `apache`, or `nginx`). This ensures proper file permissions and smooth operation of your Aikeedo installation.
### Troubleshooting Cron Issues
If you encounter problems with subscription renewals:
1. Verify the cron task configuration is correct
2. Check your server logs for error messages related to the cron job
3. Ensure the PHP path (`/usr/bin/php`) is correct for your server
4. Verify file permissions are correct for the web server user
Consult with your server administrator for server-specific issues. For additional help, see the [Troubleshooting & FAQ](/setup/troubleshooting) page.
## Configuring Your Site Domain
Properly setting your site domain is crucial for system functionality.
### Steps to Set Your Site Domain
1. **Access the Admin Panel:** Log in to your Aikeedo admin dashboard.
2. **Navigate to Settings:** Click on **Settings** in the sidebar, then select **General**.
3. **Locate the "Site Domain" Field:** You'll find this in the Website section.
4. **Enter Your Domain:** Input your domain name without the protocol (http\:// or https\://) and without any paths.
Include only the domain, subdomain (if any), and port number (if non-standard). Do not include protocols or paths. Omit the port number if it's 80 (HTTP) or 443 (HTTPS).
### SSL Configuration
Enabling SSL is highly recommended for security and is required for certain features.
1. Find the "Is SSL Enabled?" toggle in the General Settings.
2. If you have an SSL certificate installed on your server, switch this to "Yes."
Only enable SSL if you have properly installed an SSL certificate on your server. SSL is required for features like secure payment gateways.
If you haven't set up SSL yet, consider using a service like Let's Encrypt for a free SSL certificate. Many hosting providers also offer one-click SSL setup.
## Completing the "Getting Started" Section
After configuring your cron job and site domain, you'll want to complete the "Getting Started" section in your admin dashboard.
Completing the "Getting Started" section is crucial for ensuring all aspects of your Aikeedo installation are properly configured. Don't skip this step!
## Next Steps
After completing these initial setup steps, proceed to configure your application:
Complete guide to configuring all your Aikeedo settings
Or jump directly to specific configuration areas:
* [Email Settings](/email/mailer) - Configure email delivery
* [Billing Setup](/billing/overview) - Set up subscriptions and pricing
* [Integrations](/integrations/openai) - Connect AI providers and services
* [Branding](/website-basics/branding) - Customize your platform's appearance
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
# Installation Guide
Source: https://docs.aikeedo.com/setup/installation
Step-by-step guide to install Aikeedo on your server, configure the public directory, and complete the installation wizard.
This guide will walk you through the process of installing Aikeedo on your server.
**cPanel Users:** If you're using cPanel hosting, you MUST follow our dedicated [cPanel Installation Guide](/setup/installation/cpanel) instead of this guide. The steps are significantly different and this guide will not work for cPanel installations.
**Are you using cPanel?** Click here for the correct installation guide for cPanel hosting.
## Before You Start
1. Ensure your server meets our [requirements](/overview/server-requirements).
2. Prepare a database and note down its name, username, and password.
## Understanding the Public Directory
It's crucial to understand how Aikeedo's file structure works with your domain:
* Aikeedo has a `public` directory that contains web-accessible files.
* Your domain should point to this `public` directory, not the root of all Aikeedo files.
* The `public` directory cannot be moved; it must remain within the Aikeedo file structure.
Example:
If you extract Aikeedo files to `/var/www/yourdomain.com`, your domain must point to `/var/www/yourdomain.com/public`.
Consult your hosting provider's documentation on how to set the correct document root for your domain.
## Installation Steps
1. Locate the `aikeedo-server-files.zip` in your Aikeedo package.
2. Upload this zip file to your server, outside of any existing web-accessible directories.
If you can't find the zip file, refer to our [File Structure](/overview/file-structure) guide.
Extract the contents of `aikeedo-server-files.zip` so that the `public` folder ends up in your domain's root directory.
Example:
```
/var/www/yourdomain.com/
├── bin/
├── bootstrap/
├── ci/
├── config/
├── ...
├── public/
└── ... (other Aikeedo directories and files)
```
Set your domain's document root to point to the `public` directory within the extracted Aikeedo files.
Example:
If Aikeedo is extracted to `/var/www/yourdomain.com`, set the document root to `/var/www/yourdomain.com/public`.
This step often requires configuration in your web server (e.g., Apache, Nginx) or hosting control panel.
1. Open your web browser.
2. Navigate to `https://yourdomain.com`.
3. You should be automatically redirected to `https://yourdomain.com/install`.
4. If redirected successfully, you should see the Aikeedo installation wizard.
If you're not automatically redirected to the install page, it's likely that your domain is not correctly pointing to the `public` directory. In this case, you might see a 403 error. Double-check your domain's document root configuration to ensure it's set to the `public` folder within your Aikeedo installation.
The installation wizard will guide you through the setup process:
1. Provide Database Credentials:
* Enter the database name, username, and password.
2. Enter your Aikeedo Purchase Code:
* This is the unique code you received when you purchased Aikeedo.
3. Set up Admin Account Details:
* Create your administrator account for managing Aikeedo.
Carefully follow each step of the wizard, ensuring all information is entered accurately. This will ensure a smooth and successful installation of your Aikeedo instance.
Once you have provided all the necessary information, the installation wizard will finalize the setup:
1. The wizard will process your inputs and configure Aikeedo accordingly.
2. Wait patiently as the system completes the installation process.
3. Upon completion, you'll see a success message confirming that Aikeedo has been successfully installed.
4. Verify that you can access the Aikeedo dashboard or main page without any errors.
5. Confirm that the installation was successful by checking key features or settings.
Congratulations! You're now ready to explore Aikeedo and leverage its powerful capabilities for your projects.
## Troubleshooting
If you encounter any issues during the installation process:
1. Double-check that you've followed each step correctly
2. Ensure all file permissions are set correctly
3. Verify that your server meets all the [requirements](/overview/server-requirements)
4. Check the [Troubleshooting & FAQ](/setup/troubleshooting) page for solutions to common issues
## Next Steps
After successfully installing Aikeedo:
1. Follow our [Initial Setup Guide](/setup/initial-setup) to configure your new installation.
2. Explore [Website Basics](/website-basics/essentials) to learn about key Aikeedo features.
3. Consider setting up [email](/email/mailer) for your Aikeedo instance.
Congratulations on installing Aikeedo! We're excited for you to start leveraging its powerful features.
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
# Installing Aikeedo in cPanel
Source: https://docs.aikeedo.com/setup/installation/cpanel
Learn how to install Aikeedo on your cPanel hosting, whether you're using a main domain, add-on domain, or subdomain.
Welcome to the Aikeedo installation guide for cPanel! This comprehensive tutorial will walk you through the process of setting up Aikeedo on your cPanel hosting environment. Whether you're using a main domain, an add-on domain, or a subdomain, we've got you covered.
## Before You Start
1. Ensure your server meets our [requirements](/overview/server-requirements).
2. Prepare a database and note down its name, username, and password.
3. Have your Aikeedo purchase code ready.
## Understanding the Public Directory
It's crucial to understand how Aikeedo's file structure works with your domain:
* Aikeedo has a `public` directory that contains web-accessible files.
* Your domain should point to this `public` directory, not the root of all Aikeedo files.
* The `public` directory cannot be moved; it must remain within the Aikeedo file structure.
In cPanel, this typically meanss:
* For main domains: copying the contents of the `public` folder to your `public_html` directory.
* For add-on domains or subdomains: setting the document root to the `public` folder within your Aikeedo installation.
## Installation Process
Follow these steps to install Aikeedo on your main domain in cPanel:
* Locate the `aikeedo-server-files.zip` archive in your Aikeedo package.
* Upload this archive to the directory one level above your `public_html` folder.
For example, if your `public_html` path is `/home/username/public_html`, upload to `/home/username/`.
If you can't find the zip file, refer to our [File Structure](/overview/file-structure) guide.
Once uploaded, extract the contents of `aikeedo-server-files.zip` in the same directory.
* Find the `public` folder within the extracted files (e.g., `/home/username/public`).
* **Copy** (do not move) all contents from this `public` folder to your `public_html` directory.
* Make sure to include hidden files and folders (such as .htaccess file or .vite directory).
* Locate the `.env.example` file in your Aikeedo root directory (e.g., `/home/username/`).
* Find the line that contains `# PUBLIC_DIR=public_html`.
* Uncomment this line by removing the `#` symbol and the space after it.
* The final version of this line should look like:
```env .env.example theme={null}
PUBLIC_DIR=public_html
```
* Save the changes to the file.
* Open your web browser and navigate to your domain.
* You'll be automatically redirected to the installation page at `/install`.
* Follow the on-screen instructions in the installation wizard.
* You'll need to provide:
* Database credentials
* Your Aikeedo purchase code
* Admin account details
* Complete all steps as guided by the wizard.
Follow these steps to install Aikeedo on an add-on domain or subdomain in cPanel:
* Locate the `aikeedo-server-files.zip` archive in your Aikeedo package.
* Upload this archive to your add-on domain or subdomain root directory.
For example: `/home/username/yourdomain.com/`
If you can't find the zip file, refer to our [File Structure](/overview/file-structure) guide.
Once uploaded, extract the contents of `aikeedo-server-files.zip` in the same directory.
* In cPanel, navigate to **Domains** > **Addon Domains** (or **Subdomains**).
* Click **Manage** next to your domain.
* Update the **Document Root** to point to the `public` folder within your extracted files.
For example: `/home/username/yourdomain.com/public`
* Save your changes.
* Open your web browser and navigate to your add-on domain or subdomain URL.
* You'll be automatically redirected to the installation page at `/install`.
* Follow the on-screen instructions in the installation wizard.
* You'll need to provide:
* Database credentials
* Your Aikeedo purchase code
* Admin account details
* Complete all steps as guided by the wizard.
## Important Notes
* Throughout this guide, we use absolute paths (e.g., `/home/username/`). In cPanel's file manager, you might not see the `/home/username/` part. For example, `/home/username/public_html` might appear as just `/public_html`.
* Always ensure you're working in the correct directory for your specific domain setup.
* The `public` directory contains all files that should be publicly accessible. Don't confuse this with cPanel's default `public_html` directory.
## Troubleshooting
If you encounter any issues during the installation process:
1. Double-check that you've followed each step correctly.
2. Ensure all file permissions are set correctly.
3. Verify that your server meets all the [requirements](/overview/server-requirements).
4. For more detailed troubleshooting steps, please refer to our dedicated [Troubleshooting Guide](/setup/troubleshooting).
## Next Steps
After successfully installing Aikeedo:
1. Follow our [Initial Setup Guide](/setup/initial-setup) to configure your new installation.
2. Explore [Website Basics](/website-basics/essentials) to learn about key Aikeedo features.
3. Consider setting up [email](/email/mailer) for your Aikeedo instance.
Congratulations! You've successfully installed Aikeedo on your cPanel hosting. You're now ready to harness the power of AI for your content creation needs.
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
# Local Installation Guide
Source: https://docs.aikeedo.com/setup/installation/local
Learn how to install Aikeedo on your local machine for development, testing, or personal use. This guide covers various setup options, including using PHP's built-in server and popular local development environments.
This guide will walk you through the process of installing Aikeedo on your local machine. This is ideal for development, testing, or personal use.
## Prerequisites
Before you begin, ensure you have:
1. Downloaded the Aikeedo package
2. Familiarity with command-line operations
3. A local development environment (we'll cover different options)
## Option 1: Using PHP's Built-in Server
This option is suitable if you already have PHP and MySQL installed and accessible via the command line.
Ensure you have:
* PHP 8.2 or higher installed and accessible via command line
* MySQL 8.0 or higher installed and running
1. Locate the `aikeedo-server-files.zip` in your Aikeedo package.
2. Extract the contents to a directory of your choice, e.g., `C:\aikeedo` or `/home/user/aikeedo`.
1. Open your MySQL client or command-line tool:
* For command-line users, open your terminal and type `mysql -u root -p` to access MySQL.
* For GUI users, open tools like phpMyAdmin, MySQL Workbench, or HeidiSQL.
2. Create a new database for Aikeedo:
* In the MySQL command line or GUI query window, execute the following SQL command:
```sql theme={null}
CREATE DATABASE aikeedo;
```
* This creates a new, empty database named 'aikeedo' that will store all your Aikeedo data.
3. Create a new user (recommended for security):
```sql theme={null}
CREATE USER 'aikeedo_user'@'localhost' IDENTIFIED BY 'your_secure_password';
GRANT ALL PRIVILEGES ON aikeedo.* TO 'aikeedo_user'@'localhost';
FLUSH PRIVILEGES;
```
Replace 'your\_secure\_password' with a strong, unique password.
4. Note down the following information for the installation wizard:
* Database name: aikeedo
* Username: aikeedo\_user (or 'root' if you skipped step 3)
* Password: The password you set (or your root password if using root)
* Host: localhost (in most cases)
If you're not comfortable with database management, consider using a database administration tool like phpMyAdmin, which often comes pre-installed with local development environments like XAMPP or MAMP.
To start the PHP development server:
1. Open your terminal or command prompt.
2. Navigate to the root directory of your Aikeedo installation. This is the directory where you extracted the Aikeedo files, e.g., `C:\aikeedo` or `/home/user/aikeedo`.
3. Once in the root directory, run the following command:
```bash theme={null}
php -S localhost:8000 -t public
```
This command does the following:
* `php -S` starts PHP's built-in development server
* `localhost:8000` sets the server to listen on localhost at port 8000
* `-t public` sets the document root to the `public` directory within your Aikeedo installation
After running this command, you should see output indicating that the server is running. Keep this terminal window open to keep the server active.
Open your web browser and navigate to `http://localhost:8000`. You should see the Aikeedo installation wizard.
1. Provide the database credentials you noted earlier.
2. Enter your Aikeedo Purchase Code.
3. Set up your admin account details.
4. Follow any additional steps as prompted by the wizard.
## Option 2: Using Local Development Environments
This option is suitable if you prefer using pre-configured local development environments like XAMPP, MAMP, or Laragon.
Download and install XAMPP from the [official website](https://www.apachefriends.org/).
1. Open `C:\xampp\apache\conf\extra\httpd-vhosts.conf` (Windows) or `/Applications/XAMPP/etc/extra/httpd-vhosts.conf` (macOS).
2. Add a new virtual host:
```apache theme={null}
DocumentRoot "C:/xampp/htdocs/aikeedo/public"
ServerName aikeedo.test
AllowOverride All
Require all granted
```
1. Open your hosts file (`C:\Windows\System32\drivers\etc\hosts` on Windows or `/etc/hosts` on macOS).
2. Add the following line:
```
127.0.0.1 aikeedo.test
```
Extract the contents of `aikeedo-server-files.zip` to `C:\xampp\htdocs\aikeedo` (Windows) or `/Applications/XAMPP/htdocs/aikeedo` (macOS).
1. Open phpMyAdmin (usually at `http://localhost/phpmyadmin`).
2. Create a new database named `aikeedo`.
Restart Apache in XAMPP, then navigate to `http://aikeedo.test` in your browser. You should see the installation wizard.
Follow the on-screen installation wizard to complete the setup.
Download and install MAMP from the [official website](https://www.mamp.info/).
1. Open MAMP's Apache configuration file.
2. Add a new virtual host:
```apache theme={null}
DocumentRoot "/Applications/MAMP/htdocs/aikeedo/public"
ServerName aikeedo.test
AllowOverride All
Require all granted
```
1. Open `/etc/hosts`.
2. Add the following line:
```
127.0.0.1 aikeedo.test
```
Extract the contents of `aikeedo-server-files.zip` to `/Applications/MAMP/htdocs/aikeedo`.
1. Open phpMyAdmin (usually at `http://localhost:8888/phpMyAdmin`).
2. Create a new database named `aikeedo`.
Restart Apache in MAMP, then navigate to `http://aikeedo.test` in your browser. You should see the installation wizard.
Follow the on-screen installation wizard to complete the setup.
Download and install Laragon from the [official website](https://laragon.org/).
Extract the contents of `aikeedo-server-files.zip` to `C:\laragon\www\aikeedo`.
1. Right-click the Laragon tray icon and select "Apache > sites-enabled > Add".
2. Enter the following configuration:
```apache theme={null}
DocumentRoot "C:/laragon/www/aikeedo/public"
ServerName aikeedo.test
AllowOverride All
Require all granted
```
3. Save the file and restart Apache in Laragon.
1. Open HeidiSQL (included with Laragon).
2. Create a new database named `aikeedo`.
Navigate to `http://aikeedo.test` in your browser. You should see the installation wizard.
Follow the on-screen installation wizard to complete the setup.
Remember, Aikeedo must be installed in the domain root. Subpaths like `http://localhost/subdirectory` are not supported.
## Troubleshooting
If you encounter any issues during local installation:
1. Ensure your local environment meets all [server requirements](/overview/server-requirements).
2. Check that all file permissions are set correctly.
3. Verify that your virtual host and hosts file configurations are correct.
4. For more detailed troubleshooting steps, refer to our [Troubleshooting Guide](/setup/troubleshooting).
## Next Steps
After successfully installing Aikeedo locally:
1. Explore the [Initial Setup Guide](/setup/initial-setup) to configure your local instance.
2. Check out our [Local Development Guide](/development/local-development-guide) for tips on developing with Aikeedo.
Congratulations on setting up Aikeedo locally! You're now ready to start developing or testing with your local instance.
## Need Help?
If you need assistance with Aikeedo:
Get expert help from our team with a paid support subscription
Check common issues and solutions
# Troubleshooting
Source: https://docs.aikeedo.com/setup/troubleshooting
Solutions to common Aikeedo installation, configuration, and runtime issues including database errors, asset loading problems, and model configuration.
## Overview
This guide provides solutions to common issues users encounter when installing, configuring, and running Aikeedo. Issues are organized by category for easy navigation.
## Before You Begin
Before troubleshooting, verify that:
1. Your server meets all [server requirements](/overview/server-requirements)
2. You have the latest version of Aikeedo files
3. You've followed the [installation guide](/setup/installation) carefully
4. You've completed [initial setup](/setup/initial-setup) steps
## Quick Navigation
Find your issue and click to jump to the solution:
### Installation Issues
* [Assets Not Loading (CSS, JS, Images)](#assets-not-loading)
* [404 or 403 Errors During Installation](#404-or-403-errors-during-installation)
* [Database Connection Issues](#database-connection-issues)
* [500 Internal Server Error During Installation](#500-internal-server-error-during-installation)
* [Installation Wizard Not Loading](#installation-wizard-not-loading)
### Configuration Issues
* ["Does Not Allow the Value" Error](#"does-not-allow-the-value"-error)
* [Cannot Select Models or Send Prompts](#cannot-select-models-or-send-prompts)
* [500 Error on Image Generator or Video Generator](#500-error-on-image-generator-or-video-generator)
* [Save Button Does Nothing](#save-button-does-nothing)
### Database Issues
* [MySQL Server Has Gone Away](#mysql-server-has-gone-away)
### Feature-Specific Issues
* [Auto-Generated Titles Don't Match Content Language](#auto-generated-titles-don't-match-content-language)
* [Uploaded Files Return 404 Not Found Errors](#uploaded-files-return-404-not-found-errors)
* [Generated Images/Videos Not Loading](#generated-images%2Fvideos-not-loading)
***
## Installation Issues
### Assets Not Loading
**Symptoms:**
* Installation page appears without styling
* Images, CSS, and JavaScript files fail to load
* Browser shows 404 errors for asset files
**Cause:**
The domain is not correctly pointing to the `public` directory.
**Solution:**
Ensure your domain points to the `public` directory within your Aikeedo installation:
```
/path/to/aikeedo/public
```
Not to the root Aikeedo directory.
Visit your domain (e.g., `https://yourdomain.com`). You should be automatically redirected to `https://yourdomain.com/install`.
If the redirect works, your domain is configured correctly.
If you're using cPanel and cannot change the document root for your main domain, follow the dedicated [cPanel Installation Guide](/setup/installation/cpanel).
The cPanel installation process differs from the standard installation due to control panel limitations.
**Related Documentation:**
* [Installation Guide](/setup/installation)
* [cPanel Installation](/setup/installation/cpanel)
***
### 404 or 403 Errors During Installation
**Symptoms:**
* 404 error when accessing `/install`
* 403 Forbidden error on home page
* Installation wizard not accessible
**Cause:**
Domain document root not pointing to the `public` directory, missing files, incorrect permissions, or web server configuration issues preventing proper request routing.
**Solution:**
Ensure your domain's document root points to the `public` folder:
**For cPanel:**
* Main domain: Points to `public_html` by default (this is correct)
* Ensure Aikeedo's `public` folder contents are copied to `public_html`
* Add-on domains/subdomains: Update document root in cPanel to point to the `public` folder
**For VPS/Dedicated:**
* Set document root to `/path/to/aikeedo/public`
Accessing your domain should automatically redirect you to `/install` if the document root is correctly configured.
Configure your web server to serve PHP applications and rewrite all requests to `/public/index.php`:
Ensure your server block is configured correctly:
```nginx /etc/nginx/sites-available/aikeedo theme={null}
server {
listen 80;
listen [::]:80;
server_name yourdomain.com www.yourdomain.com;
root /path/to/aikeedo/public;
# Add index.php to the list
index index.php index.html index.htm index.nginx-debian.html;
# Increase the maximum upload size
client_max_body_size 256M;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to index.php
try_files $uri $uri/ /index.php$is_args$query_string;
}
# Pass PHP scripts to FastCGI server
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# Fix for PHP files downloading instead of execute
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
# With php-fpm (or other unix sockets):
fastcgi_pass unix:/run/php/php-fpm.sock;
# With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
fastcgi_connect_timeout 300s;
fastcgi_send_timeout 300s;
fastcgi_read_timeout 300s;
}
# Deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
location ~ /\.ht {
deny all;
}
}
```
After configuring, test your Nginx configuration: `sudo nginx -t` and reload: `sudo systemctl reload nginx`
Adjust the `fastcgi_pass` socket path to match your PHP-FPM configuration. Common locations:
* `/run/php/php-fpm.sock` (generic)
* `/run/php/php8.2-fpm.sock` (version-specific)
* `/var/run/php/php8.2-fpm.sock` (alternative path)
Ensure your virtual host is configured correctly with proper rewrite rules:
```apache /etc/apache2/sites-available/aikeedo.conf theme={null}
ServerName yourdomain.com
ServerAlias www.yourdomain.com
DocumentRoot /path/to/aikeedo/public
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
```
Ensure `mod_rewrite` is enabled: `sudo a2enmod rewrite` and reload Apache: `sudo systemctl reload apache2`
The server configurations provided above are minimal samples. Consult with your server administrator for the correct configuration for your specific server environment, especially if you're using load balancers, reverse proxies, or have specific security requirements.
If you're using Apache, ensure the `.htaccess` file is present in the `public` directory. Aikeedo includes this file by default with the correct rewrite rules.
Hidden files may not be visible by default. Enable "Show hidden files" in your FTP client or file manager if you need to verify the file exists.
Verify all Aikeedo files are extracted correctly and the `public` directory exists with all necessary files.
Ensure the web server has appropriate permissions:
```bash theme={null}
# Set directory permissions
find /path/to/aikeedo -type d -exec chmod 755 {} \;
# Set file permissions
find /path/to/aikeedo -type f -exec chmod 644 {} \;
```
Double-check that all virtual host settings are correctly configured:
* **Document Root**: Must point to `/path/to/aikeedo/public` (not the root directory)
* **Server Name/Alias**: Must match your domain exactly
* **PHP Handler**: Configured correctly (PHP-FPM for Nginx, mod\_php or PHP-FPM for Apache)
* **Rewrite Rules**: Enabled and properly configured to route all requests to `index.php`
After making changes:
1. Test web server configuration:
* Nginx: `sudo nginx -t`
* Apache: `sudo apache2ctl configtest`
2. Reload your web server:
```bash theme={null}
# Nginx
sudo systemctl reload nginx
# Apache
sudo systemctl reload apache2
```
3. Visit your domain - you should be automatically redirected to `/install`
If you're redirected to `/install`, your server configuration is correct.
All requests must be rewritten to `/public/index.php` for the application to function correctly. Without proper rewrite rules, you'll encounter 404 errors on all routes except the home page.
***
### Database Connection Issues
**Symptoms:**
* Cannot connect to database during installation
* Database error messages in installation wizard
* Installation fails at database configuration step
**Cause:**
Incorrect database credentials, missing database, or insufficient permissions.
**Solution:**
1. **Verify Database Credentials**
* **Database name**: Must be exact (case-sensitive)
* **Username**: Database user with proper permissions
* **Password**: Correct password for the database user
* **Host**: Usually `localhost`, but may be different on some hosts
2. **Check Database Server**
* Ensure the database server (MySQL/MariaDB) is running
* Verify the database is accessible from your web server
* Confirm the database exists and is empty
3. **Verify User Permissions**
The database user must have these permissions:
* SELECT, INSERT, UPDATE, DELETE
* CREATE, DROP, INDEX, ALTER
If unsure, grant ALL PRIVILEGES to the database user for the specific database.
4. **Check PHP Extensions**
Verify that required PHP database extensions are installed:
* `mysqli` for MySQL
* `pdo_mysql` for PDO support
Check with:
```bash theme={null}
php -m | grep -i mysql
```
If problems persist, try creating a new database and user with full permissions.
***
### 500 Internal Server Error During Installation
**Symptoms:**
* HTTP 500 error before or during installation
* Blank page with 500 status code
* Generic server error message
**Cause:**
PHP configuration issues, incorrect file permissions, or insufficient server resources.
**Solution:**
Review server error logs for specific error messages:
**Apache:**
```bash theme={null}
tail -f /var/log/apache2/error.log
# or
tail -f /var/log/httpd/error_log
```
**Nginx:**
```bash theme={null}
tail -f /var/log/nginx/error.log
```
Error logs will reveal the exact issue.
Ensure you're running PHP 8.2 or later:
```bash theme={null}
php -v
```
Verify all required extensions are installed:
```bash theme={null}
php -m
```
```bash theme={null}
# Set ownership (replace www-data with your web server user)
chown -R www-data:www-data /path/to/aikeedo
# Set directory permissions
find /path/to/aikeedo -type d -exec chmod 755 {} \;
# Set file permissions
find /path/to/aikeedo -type f -exec chmod 644 {} \;
```
Common web server users: `www-data` (Ubuntu/Debian), `apache` (CentOS/RHEL), `nginx` (Nginx)
If using PHP-FPM:
```bash theme={null}
sudo systemctl restart php8.2-fpm
```
Replace `8.2` with your PHP version.
Edit your `php.ini` file:
```ini theme={null}
memory_limit = 256M
```
Restart your web server after making changes.
***
### Installation Wizard Not Loading
**Symptoms:**
* Blank white page when accessing installation
* Installation wizard doesn't appear
* JavaScript errors in browser console
**Cause:**
PHP errors, insufficient server resources, or missing files.
**Solution:**
1. **Check PHP Error Logs**: Review PHP error logs for fatal errors or warnings
2. **Clear Browser Cache**: Hard refresh (Ctrl+Shift+R or Cmd+Shift+R) or try a different browser
3. **Verify SSL Certificate**: If using HTTPS, ensure your SSL certificate is valid
4. **Check File Permissions**: Verify web server can read all files in the `public` directory
5. **Confirm PHP Extensions**: Ensure all required extensions are installed (see [Server Requirements](/overview/server-requirements))
6. **Check Server Resources**: Verify sufficient CPU and RAM are available
Try accessing the site from an incognito/private browsing window to rule out browser cache issues.
***
## Configuration Issues
### "Does Not Allow the Value" Error
**Symptoms:**
* Error message: "Does not allow the value"
* Occurs after installation when trying to use features
**Cause:**
The Site Domain value is missing in General Settings.
**Solution:**
1. Log in to the admin panel
2. Navigate to **Settings > General**
3. Locate the "Site Domain" field
4. Enter your domain without protocol or paths (e.g., `yourdomain.com`)
5. Enable SSL if you have an SSL certificate
6. Click "Save changes"
**Related Documentation:**
* [Initial Setup - Configuring Site Domain](/setup/initial-setup#configuring-your-site-domain)
***
### Cannot Select Models or Send Prompts
**Symptoms:**
* Browser console shows JavaScript errors
* Unable to select AI models in dropdown
* Cannot send prompts or generate content
* Tools missing from sidebar
**Cause:**
Features and models are not enabled globally, or plan configuration is incomplete.
**Solution:**
1. Navigate to **Settings > Features** in the admin panel
2. Enable the features you want to offer (Chat, Writer, Coder, etc.)
3. Click "Save changes"
Enabling features globally makes them available but they still need to be configured in plans.
1. Go to **Settings > Models**
2. Enable the AI models you want to make available
3. Click "Save changes"
1. Navigate to the **Plans** page in the admin panel
2. Find the plan your users are subscribed to
3. Edit the plan configuration:
* Enable desired features
* Enable desired models
* Set credit allocations
4. **Important:** Check the "Update snapshots" box before saving
5. Click "Save changes"
If you don't check "Update snapshots," changes will only apply to new subscriptions, not existing ones.
1. Log in as a test user
2. Verify tools appear in the sidebar
3. Test selecting a model and generating content
Users should now be able to access features and generate content.
**Related Documentation:**
* [Plans, Snapshots & Subscriptions](/billing/plans-snapshots-subscriptions)
* [Application Configuration](/setup/configuration)
***
### 500 Error on Image Generator or Video Generator
**Symptoms:**
* Imagine (image generator) page returns HTTP 500 error
* Video generator page returns HTTP 500 error
* Server error logs show credit ratio issues
**Cause:**
Credit ratios are not configured for all enabled models.
**Solution:**
1. Navigate to **Settings > Credit Ratios** in the admin panel
2. Review all enabled AI models
3. Ensure **every enabled model** has a credit ratio configured
4. Set appropriate credit values for each model
5. Click "Save changes"
If you're unsure about credit ratios, start with the default suggestions and adjust based on your pricing strategy.
**Related Documentation:**
* [Unified Credit System](/billing/unified-credit-system)
* [Application Configuration](/setup/configuration)
***
### Save Button Does Nothing
**Symptoms:**
* Clicking "Save changes" or other save buttons in the admin panel has no effect
* No error message appears
* Page appears to be unresponsive after clicking save
* Changes are not saved
**Cause:**
Most commonly a backend PHP error that's preventing the request from completing. Can also be a frontend JavaScript issue.
**Solution:**
Before clicking the save button, check for frontend errors:
1. Open your browser's developer console:
* **Chrome/Edge**: Press `F12` or `Ctrl+Shift+I` (Windows/Linux) / `Cmd+Option+I` (Mac)
* **Firefox**: Press `F12` or `Ctrl+Shift+K` (Windows/Linux) / `Cmd+Option+K` (Mac)
* **Safari**: Enable Developer menu first, then press `Cmd+Option+I`
2. Look for any red error messages in the console
3. Review error details - they often indicate the specific issue
If you see errors in the console before clicking save, the issue is likely frontend-related. Note the error messages for troubleshooting.
If no frontend errors are visible, first check server-level error logs, as the issue might occur before the request reaches PHP:
1. **Locate your web server error log**:
```bash theme={null}
# Apache
/var/log/apache2/error.log
# or
/var/log/httpd/error_log
# Nginx
/var/log/nginx/error.log
```
2. **View recent errors**:
```bash theme={null}
tail -f /path/to/error.log
```
3. **Click the save button** while monitoring the log
4. **Review any error messages** that appear
Server-level errors can include issues like request timeouts, connection problems, or web server configuration errors that prevent requests from reaching PHP.
If no server-level errors are found, check PHP error logs:
1. **Locate your PHP error log** (common locations):
```bash theme={null}
# PHP-FPM
/var/log/php8.2-fpm.log
# or check php.ini for error_log location
# You can find it with: php -i | grep error_log
```
2. **View recent errors**:
```bash theme={null}
tail -f /path/to/php-error.log
```
3. **Click the save button** while monitoring the log
4. **Review the error message** that appears in the log
The error log will show the exact PHP error preventing the save operation from completing. Common issues include database errors, permission problems, or missing dependencies.
Alternatively, enable DEBUG mode to get more detailed error information:
1. **Enable DEBUG mode** from the admin panel:
* Navigate to **Status** page in the admin panel
* Enable DEBUG mode using the toggle or button provided
2. **Open your browser's developer console** (see step 1 above)
3. **Navigate to the Network tab** in the developer console
4. **Click the save button** again
5. **Look for the API request** that was made when you clicked save (usually shows as a POST request)
6. **Click on the request** to view details:
* Check the **Status Code** (should be between 200 and 299 for success, 4xx/5xx for errors)
* Check the **Response** tab to see the response body
* Review any error messages in the response
Remember to disable DEBUG mode from the Status page after troubleshooting, as it can expose sensitive information in production environments.
Based on the error information you've gathered:
* **Database errors**: Check database connection and permissions
* **Permission errors**: Verify file/directory permissions (see [500 Internal Server Error](#500-internal-server-error-during-installation))
* **Missing dependencies**: Ensure all required PHP extensions are installed
* **Frontend JavaScript errors**: Check for conflicting scripts or browser compatibility issues
The specific error message will guide you to the exact solution. Common fixes include updating file permissions, fixing database credentials, or installing missing PHP extensions.
**Related Documentation:**
* [500 Internal Server Error During Installation](#500-internal-server-error-during-installation) - Permission and PHP configuration issues
* [Database Connection Issues](#database-connection-issues) - Database-related errors
***
## Database Issues
### MySQL Server Has Gone Away
**Symptoms:**
* Error message: "MySQL server has gone away"
* Database connection drops during requests
* Long-running operations fail
**Cause:**
MySQL server timeout or packet size limitations.
**Solution:**
**Problem:** MySQL server times out and closes the connection.
**Solution:** Update your `my.cnf` configuration file:
```ini theme={null}
[mysqld]
wait_timeout = 28800
```
This sets the timeout to 8 hours. Adjust as needed for your use case.
**Problem:** MySQL receives packets that are too large or incorrect.
**Solution:** Increase the max packet size in `my.cnf`:
```ini theme={null}
[mysqld]
max_allowed_packet = 128M
```
This allows larger data packets to be processed.
**Problem:** InnoDB log file size is insufficient.
**Solution:** Increase the log file size in `my.cnf`:
```ini theme={null}
[mysqld]
innodb_log_file_size = 128M
```
Or larger, depending on your data volume.
After modifying `my.cnf`, you must restart your MySQL server for changes to take effect:
```bash theme={null}
sudo systemctl restart mysql
```
or
```bash theme={null}
sudo service mysql restart
```
**Finding my.cnf:**
Common locations for the MySQL configuration file:
* Linux: `/etc/my.cnf` or `/etc/mysql/my.cnf`
* macOS: `/etc/my.cnf`
* Windows: `C:\ProgramData\MySQL\MySQL Server X.X\my.ini`
If you're on shared hosting and don't have access to `my.cnf`, contact your hosting provider to request these changes.
***
## Feature-Specific Issues
### Auto-Generated Titles Don't Match Content Language
**Symptoms:**
* AI generates titles in Spanish when content is in another language
* Title language doesn't match the generated content language
**Cause:**
AI models sometimes generate titles in their default language despite instructions.
**Solution:**
Customize the title generation prompts in these files:
```
/src/Ai/Infrastructure/Services/OpenAi/TitleGeneratorService.php
/src/Ai/Infrastructure/Services/Anthropic/TitleGeneratorService.php
/src/Ai/Infrastructure/Services/Cohere/TitleGeneratorService.php
```
Strengthen the language instruction in the prompt to emphasize matching the content language.
Custom code modifications will need to be reapplied after app updates.
Some AI models are better at following language instructions than others:
1. Navigate to **Plans** in your admin panel
2. Edit the plan that's experiencing title language issues
3. In the plan configuration, change the title generation model
4. **Important:** Check the "Update snapshot" checkbox before saving
5. Save the plan changes and test title generation
***
### Uploaded Files Return 404 Not Found Errors
**Symptoms:**
* Uploaded files show "not found" or 404 errors
* Generated files (images, videos, audio, documents etc.) are inaccessible
* Files exist in storage but cannot be accessed via URL
* Browser shows 404 when clicking file links
**Cause:**
File grouping enabled on local storage, secure URLs enabled, incorrect document root configuration, or file permission issues.
**Solution:**
If you're experiencing file access issues with local storage, try disabling file grouping:
1. Log in to the admin panel
2. Navigate to **Settings > Storage**
3. Locate the "File Grouping" option
4. Change the value to **"None"**
5. Click "Save changes"
File grouping and secure URLs are optimized for cloud storage (S3, DigitalOcean Spaces, etc.) and may cause compatibility issues on some local storage configurations, particularly on cPanel-based hosting. If files are inaccessible, disabling these options often resolves the issue.
If you're using local storage without special security requirements:
1. In **Settings > Storage**
2. Locate the "Secure URLs" option
3. **Turn off** the "Secure URLs" option
4. Click "Save changes"
If files were uploaded with Secure URLs enabled, you may need to re-upload them after disabling this option.
If your domain's document root is set to `public_html` instead of `public`:
1. Open your `.env` file in the root directory
2. Find the line with `PUBLIC_DIR` (it may be commented out with `#`)
3. Ensure it's set correctly:
```bash theme={null}
PUBLIC_DIR=public_html
```
4. Remove the `#` symbol if present at the beginning
5. Save the file
This is particularly important for cPanel users where the default document root is `public_html`.
Ensure the web server has read access to uploaded files:
```bash theme={null}
# Navigate to your Aikeedo directory
cd /path/to/aikeedo
# Set correct permissions for storage directory
chmod -R 755 storage/
# Set correct ownership (replace www-data with your web server user)
chown -R www-data:www-data storage/
```
Common web server users:
* Ubuntu/Debian: `www-data`
* CentOS/RHEL: `apache`
* Nginx: `nginx`
If you're using cloud storage (AWS S3, DigitalOcean Spaces, etc.), CORS issues may prevent file access:
1. **Check your cloud storage CORS configuration:**
* Ensure your bucket allows requests from your domain
* Verify that the GET method is allowed (generally sufficient for file access)
* Check that the correct headers are permitted
2. **Example CORS configuration for AWS S3:**
```json theme={null}
[
{
"AllowedHeaders": ["*"],
"AllowedMethods": ["GET"],
"AllowedOrigins": ["https://yourdomain.com", "https://www.yourdomain.com"]
}
]
```
3. **Verify your storage configuration:**
* Check **Settings > Storage** in your admin panel
* Ensure cloud storage credentials are correct
* Verify the bucket/container name and region are accurate
CORS misconfiguration can cause files to appear uploaded but return 404 errors when accessed. Always test file access after making CORS changes.
Check that your storage path is correctly configured:
1. Go to **Settings > Storage** in the admin panel
2. Verify the storage driver is set correctly (Local, S3, etc.)
3. If using local storage, ensure the path is correct
4. Test by uploading a new file
If the new file is accessible, the configuration is correct. You may need to re-upload older files.
After making configuration changes:
1. Navigate to **Status** page in the admin panel
2. Click "Clear cache" to clear the application cache
3. Test file access again
For production environments requiring secure file access or workspace-based file organization, cloud storage (S3, DigitalOcean Spaces) is recommended. File grouping and secure URL features are optimized for cloud storage and work most reliably in that environment, though they may also work on some local storage configurations.
**Related Documentation:**
* [Secure URLs](/advanced/secure-urls) - Configure secure file access
* [cPanel Installation](/setup/installation/cpanel) - Document root configuration for cPanel
***
### Generated Images/Videos Not Loading
**Symptoms:**
* Generated images or videos fail to display after creation
* Broken image/video placeholders appear instead of content
* 404 or 403 errors when accessing generated media files
* Files appear to generate successfully but cannot be viewed
**Cause:**
Incomplete initial setup, cloud storage CORS misconfiguration, incorrect `.env` file configuration (especially for cPanel installations), or Secure URLs/Group files settings enabled when using local storage.
**Solution:**
Ensure you've completed all steps in the [Initial Setup Guide](/setup/initial-setup):
1. Verify your site domain is configured correctly in **Settings > General**
2. Check that storage settings are properly configured in **Settings > File storage**
3. Ensure all required integrations are set up if using cloud storage
Skipping or incorrectly completing initial setup steps can prevent generated files from being accessible.
If you're using cloud storage (AWS S3, DigitalOcean Spaces, Cloudflare R2, etc.), CORS misconfiguration is a common cause:
1. **Access your cloud storage provider's console** (AWS S3, DigitalOcean, etc.)
2. **Navigate to your bucket/container settings**
3. **Review CORS configuration** - it must allow requests from your domain
4. **Update CORS rules** if needed:
5. **Save the CORS configuration**
6. **Test by generating a new image or video**
CORS rules must include your exact domain (with protocol: `https://` or `http://`). Wildcards may not work for all storage providers.
See the [Cloud Storage Overview](/integrations/cloud-storage/overview) and provider-specific guides for detailed CORS configuration instructions.
The **Secure URLs** and **Group files** options should only be enabled when using cloud storage (AWS S3, DigitalOcean Spaces, etc.):
1. Navigate to **Settings > File storage** in the admin panel
2. Review the **Secure URLs** and **Group files** settings
3. **If using local storage**, ensure both options are disabled:
* **Secure URLs**: Should be turned **Off**
* **Group files**: Should be set to **None**
4. **If using cloud storage**, these options can be enabled as needed
5. Click "Save changes"
**Secure URLs** and **Group files** are designed for cloud storage only. Enabling these options with local storage can cause generated files to be inaccessible.
Changing these settings only affects newly generated files. Files that were already generated with the previous settings will remain unchanged. If the issue stems from Secure URLs, previously generated files can be made accessible by fixing file permissions (see the "Verify Storage Path and Permissions" step below). Otherwise, you may need to regenerate images or videos after adjusting these settings.
If you're using cPanel, the `.env` file configuration is critical:
1. **Locate your `.env` file** in the Aikeedo root directory (not in `public_html`)
2. **Find the `PUBLIC_DIR` setting** - it may be commented out with `#`
3. **For main domain installations**, ensure it's set correctly:
```env theme={null}
PUBLIC_DIR=public_html
```
4. **Remove the `#` symbol** if the line is commented out
5. **Save the file**
If you're using cPanel and the `PUBLIC_DIR` setting is missing or incorrect, generated files will not be accessible. This is a critical step that must be completed during installation.
For add-on domains or subdomains in cPanel where the document root points directly to the `public` folder, you may not need to set `PUBLIC_DIR` or it should be set to `public`. Refer to the [cPanel Installation Guide](/setup/installation/cpanel) for your specific setup.
Check that your storage configuration is correct:
1. Navigate to **Settings > File storage** in the admin panel
2. Verify the storage driver is set correctly (Local, S3, etc.)
3. If using local storage, ensure the storage path is writable:
```bash theme={null}
# Check storage directory permissions
ls -la /path/to/aikeedo/public/uploads/
# Set correct permissions if needed
chmod -R 755 /path/to/aikeedo/public/uploads/
chown -R www-data:www-data /path/to/aikeedo/public/uploads/
```
4. If using cloud storage, verify:
* Bucket/container name is correct
* Region is correctly configured
* Access keys are valid and have proper permissions
* Bucket/container exists and is accessible
Test by generating a new image or video. If it loads correctly, the configuration is working.
**For cPanel users:** If you skipped or incorrectly completed the `.env` file configuration step during installation (specifically the `PUBLIC_DIR=public_html` setting), generated files will not load correctly. This is one of the most common causes of this issue on cPanel hosting. Refer to the [cPanel Installation Guide](/setup/installation/cpanel) and ensure you've completed the "Update the Environment File" step correctly.
**Related Documentation:**
* [Initial Setup Guide](/setup/initial-setup) - Complete setup configuration
* [cPanel Installation](/setup/installation/cpanel) - Critical `.env` file configuration
* [Cloud Storage Overview](/integrations/cloud-storage/overview) - Cloud storage setup and CORS configuration
* [Secure URLs](/advanced/secure-urls) - Secure file access configuration
***
## Additional Troubleshooting Steps
If you're still experiencing issues after trying the solutions above:
1. **Fresh Installation**: Consider a clean reinstall with fresh Aikeedo files
2. **Server Configuration**: Review web server configuration (Apache/Nginx) for PHP applications
3. **PHP Configuration**: Check `php.ini` for settings like:
* `max_execution_time`
* `upload_max_filesize`
* `post_max_size`
* `memory_limit`
4. **Hosting Environment**: Contact your hosting provider to ensure no server-side restrictions
## Getting Additional Help
If you've tried the solutions above and still need assistance:
### Before Contacting Support
1. **Check Error Logs:**
* Browser console (F12 in most browsers)
* Server error logs (`/var/log/apache2/error.log` or `/var/log/nginx/error.log`)
* Application logs
* PHP error logs
2. **Verify Configuration:**
* Review [Initial Setup](/setup/initial-setup)
* Check [Application Configuration](/setup/configuration)
* Verify [Server Requirements](/overview/server-requirements)
3. **Clear Caches:**
* Clear browser cache (Ctrl+Shift+R or Cmd+Shift+R)
* Clear application cache from admin panel Status page
### Need Additional Help?
Get expert help from our team with a paid support subscription
For support plan options and pricing, visit [https://aikeedo.com/support/](https://aikeedo.com/support/).
**Before contacting support:**
* Ensure you have an active [support plan subscription](https://aikeedo.com/support/)
* Have your Aikeedo license key ready for validation
**When contacting support, include:**
* Your Aikeedo license key (for purchase validation)
* Detailed description of the issue
* Complete error messages (screenshots if possible)
* Steps to reproduce the problem
* PHP version and server environment details
* Aikeedo version number
* Relevant error log entries
* What troubleshooting steps you've already tried
Support is only available to users with active support plan subscriptions. Requests without valid license keys or active support plans will not be processed.
The more detailed information you provide, the faster our support team can help resolve your issue.
***
## Related Guides
* [Installation Guide](/setup/installation)
* [Initial Setup](/setup/initial-setup)
* [Application Configuration](/setup/configuration)
* [Server Requirements](/overview/server-requirements)
* [Plans, Snapshots & Subscriptions](/billing/plans-snapshots-subscriptions)
# How to Update Aikeedo
Source: https://docs.aikeedo.com/versioning/how-to-update
Stay up-to-date with the latest features and improvements by following our straightforward update instructions for each new version of Aikeedo.
Keeping your Aikeedo installation current ensures you benefit from the latest features, security patches, and performance enhancements. This guide provides a comprehensive, step-by-step process for updating Aikeedo, suitable for users of all technical levels.
**Upgrading to v4.x?** The standard update process on this page is sufficient.
v4.x releases have no breaking changes and require no migration.
**Upgrading from v2.x to v3.0?** This guide is **not** suitable for that
upgrade. You must follow the dedicated [Migration
Guide](/versioning/release-notes#migration-guide-upgrading-from-v2-x-to-v3-0)
instead. Attempting to use the standard update process for a v2.x → v3.0
upgrade may result in data loss or a broken installation.
## Before You Begin
Before initiating the update process, it's crucial to take a few preparatory steps:
1. **Check for Updates**: Visit our [official website](https://aikeedo.com) to confirm the latest available version of Aikeedo.
2. **Review the Changelog**: Familiarize yourself with the new features, improvements, and any potential breaking changes by reviewing our [changelog](https://aikeedo.com/changelog/).
3. **Backup Your Data**: As a precautionary measure, create a complete backup of your Aikeedo data. This step is crucial to prevent any potential data loss during the update process.
Always perform updates in a staging environment first, if possible, to ensure
compatibility with your specific setup.
## Update Process
Follow these steps to update your Aikeedo installation:
1. **Download the Latest Version**:
* Obtain the latest Aikeedo package from the official source.
* Extract the downloaded zip file on your local machine.
2. **Locate the Update File**:
* Find the `aikeedo-server-files.zip` file within the extracted contents.
3. **Access the Admin Panel**:
* Log in to your Aikeedo admin panel.
* Navigate to the "Update" page in the admin dashboard.
4. **Upload the Update File**:
* Click on the "Choose File" button.
* Select the `aikeedo-server-files.zip` file you located earlier.
5. **Initiate the Update**:
* Click the "Install" button to begin the update process.
* Follow any on-screen instructions carefully.
The update process may take several minutes to complete. Do not close your
browser or interrupt the process until it's finished.
## Post-Update Steps
After the update process completes:
1. **Verify the Update**: Confirm that the update was successful by checking the version number in your admin panel.
2. **Clear Cache**: In most cases, this step is not necessary. Aikeedo automatically manages its cache during updates. However, if you notice any display issues, you may want to clear your browser cache as a troubleshooting step.
3. **Test Functionality**: Thoroughly test all aspects of your Aikeedo installation, including:
* User authentication
* AI-powered features
* Payment integrations (if applicable)
* Custom configurations or integrations
4. **Review Settings**: Some updates may introduce new settings or change existing ones. Review your configuration to ensure everything is set up as desired.
## Troubleshooting
If you encounter any issues during or after the update:
1. Review the update logs (if available) for any error messages.
2. Ensure all [server requirements](/overview/server-requirements) are still met after the update.
## Staying Informed
To stay updated on the latest Aikeedo releases and announcements:
* Follow us on [social media](https://x.com/heyaikeedo)
* Regularly check our [changelog](https://aikeedo.com/changelog/)
By following these update procedures and staying informed, you'll ensure your Aikeedo installation remains secure, efficient, and equipped with the latest features to serve your users best.
# Release Notes
Source: https://docs.aikeedo.com/versioning/release-notes
Learn about the latest changes, breaking updates, and migration instructions for Aikeedo.
The full changelog is available at
[https://aikeedo.com/changelog/](https://aikeedo.com/changelog/). This page
documents only breaking changes and critical migration instructions for major
releases.
## v4.1
v4.1 adds operator-facing billing and chat controls, plus self-service account management.
v4.1 has no breaking changes and requires no migration. You can update using
the standard process — see the [How to Update](/versioning/how-to-update)
guide.
### What's new in v4.1
* **Session-based usage mode** — optional alternative to credit metering that paces usage through configurable session windows while hiding credit balances from users. See [Billing Overview](/billing/overview#usage-mode).
* **Configurable detailed pricing page URL** — set where the Plans page "Detailed pricing table" button links, including external marketing sites.
* **Self-service account deletion** — allow users to permanently delete their own accounts (admin toggle). See [Account Settings](/authentication/accounts-settings#account-deletion).
* **Temporary chat** — let users start chats that are not saved to history, with a configurable retention period.
* **Chat thinking / reasoning controls** — configure per-model reasoning profiles and expose thinking on/off and effort controls in chat.
***
## v4.0
v4.0 is the largest Aikeedo release to date. It introduces the Chatbots plugin, a full Tax Layer, new payment gateways, the Sources module, and a range of platform improvements.
v4.0 has no breaking changes and requires no migration. You can update using
the standard process — see the [How to Update](/versioning/how-to-update)
guide.
***
## v3.0
Please review these notes carefully if you are upgrading from v2.x.
Version 3.0 introduced several breaking changes. If you are upgrading from
v2.x, follow the migration guide below.
### Breaking Changes in v3.0
#### Plugins Architecture Changed
* Plugins are now installed in `/extra/extensions` instead of `/public`.
* Old plugins remain compatible, but you must reinstall them manually.
#### "Cohere Web Search" Chat Capability Removed
* The Cohere integration now uses Cohere API v2.0.
* The built-in web search feature from Cohere has been removed and replaced with Google Search.
* Please update your plan configuration accordingly.
#### Removed Models
The following legacy/deprecated models have been removed. Please use other available models:
* openai/gpt-3.5-turbo-instruct
* openai/o1-preview
* openai/o1-mini
* openai/gpt-4.5-preview
* openai/text-moderation-latest
* openai/dall-e-2
* fal-ai/flux-realism (not available anymore)
* grok-beta
* grok-vision-beta
#### Search Box Removed
* The search box on the user app dashboard has been replaced with a new quick access bar.
* To search for library items, visit the Library pages.
#### Ai/Infrastruture Namespace Renamed
* The namespace is now correctly spelled as `Ai/Infrastructure`.
* If you use services from this layer in custom code, update the namespace accordingly.
#### Change in ImageServiceInterface::generateImage() Method Signature
* The signature of `Ai\Domain\Image\ImageServiceInterface::generateImage()` has changed.
* It now returns `ImageEntity` directly.
* Update any custom image generator services to match the new signature.
#### Keys for the Following Models Have Been Updated
If you use any of the following models, set the credit rates and enable them both globally and at the plan level again:
* fal-ai/flux/dev
* fal-ai/flux/schnell
* fal-ai/flux-pro
***
### Migration Guide: Upgrading from v2.x to v3.0
Version 3.0 is a major release with breaking changes. A standard update is NOT
sufficient for upgrading from v2.x to v3.0. Please follow this migration guide
to avoid data loss.
Before starting the migration, create a full backup of your database and all files in your current Aikeedo installation.
This is essential to prevent data loss. Make sure your backup includes user uploads and your database.
Delete all files and folders from your installation directory.
This will remove all application files. Do not proceed unless you have a
backup.
Before installing the new version, ensure you have your previous database name
and user credentials ready. You will need to enter these during installation
to preserve your data. When prompted by the installer, choose the
Migrate option to keep your current data.
If you provide the same database details as your previous installation, the
installer will ask whether you want to migrate your current data or perform
a fresh install.
Choose the Migrate option
to preserve your data. Only choose a fresh install if you want to start with
a clean database.
Install the new version in the same directory by extracting to the same
location as your previous installation. Then follow the
installation guide to complete the setup.
The new version package includes all required files and directories.
Overwrite any existing files if prompted.
After installation is complete, restore your /public/uploads
directory from your backup.
If you are using public\_html instead of public,
restore your uploaded files from your backup to
/public\_html/uploads.
Navigate to the Update page in the Admin panel. This step is crucial as
it finalizes the update process in the background.
Do not skip this step. The update will not be fully applied until you visit
the update page in Admin.
Install your plugins again from the admin UI.
Plugin architecture has changed in v3.0. All plugins must be reinstalled manually.
If you have custom plugins or integrations, review the breaking changes above and update your code as needed.
# Branding
Source: https://docs.aikeedo.com/website-basics/branding
Customize your Aikeedo platform with custom logos, favicons, color schemes, and settings to create a unique brand identity.
Aikeedo provides comprehensive branding options to customize the visual identity of your platform. This guide covers logo configuration, color schemes, and appearance settings.
## Accessing Branding Settings
To access the branding settings:
1. Log in to your Aikeedo admin panel
2. Navigate to the "Settings" section in the left sidebar
3. Under the "Branding" category, you'll find options for "Logo" and "Appearance"
The branding settings affect both the admin panel and the user-facing parts of your Aikeedo instance.
## Logo Settings
Your logo is often the first thing users notice about your brand. Aikeedo allows you to customize various logo elements:
### Favicon
The favicon is the small icon that appears in browser tabs and bookmarks.
* Click on "Browse files" to upload your favicon
* Supported formats: PNG, JPG, JPEG, GIF, ICO, or SVG
* Recommended size: 16x16 pixels or 32x32 pixels for better quality on high-resolution displays
### Primary Logo
The primary logo is used in the header of your website and emails.
* Upload separate logos for light and dark modes
* Supported formats: PNG, JPG, JPEG, GIF, ICO, or SVG
* Recommended size: Varies depending on your design, but ensure it's clear and legible
### Alternative Logo
The alternative logo is typically used in the footer of your website and emails.
* Upload separate logos for light and dark modes
* Supported formats: PNG, JPG, JPEG, GIF, ICO, or SVG
* Recommended size: Usually smaller than the primary logo
For the best results, use SVG format for your logos. SVGs are scalable and will look crisp on all devices and screen sizes.
## Appearance Settings
Customize the color scheme and overall look of your Aikeedo instance:
### Color Schemes
* **Light mode**: Enable or disable light mode for your users
* **Dark mode**: Enable or disable dark mode for your users
* **Default color scheme**: Choose between "System" (follows user's device settings) or set a specific default
### Accent Colors
* **Accent color**: The primary brand color used for buttons, links, and highlights
* **Accent text color**: The color of text that appears on elements using the accent color
These settings apply to both the admin panel and user interface. However, they may not affect the landing page, depending on your chosen theme.
## Best Practices
Follow these guidelines to create a professional brand identity:
1. **Consistency**: Maintain consistent branding across all touchpoints including website, emails, and notifications
2. **Readability**: Choose colors with sufficient contrast to ensure text remains easily readable
3. **File Optimization**: Compress image files to ensure fast loading without sacrificing quality
4. **SVG Format**: Use SVG format for logos when possible for scalability across all devices
5. **Testing**: Preview your branding in both light and dark modes before finalizing
Test your color choices with accessibility tools to ensure they meet WCAG contrast requirements for all users.
## Related Guides
* [General Settings](/website-basics/essentials) - Configure site name and SEO
* [Landing Page Customization](/website-basics/landing-page) - Customize landing page theme
* [PWA Settings](/website-basics/pwa) - Set up progressive web app features
* [Application Configuration](/setup/configuration) - Complete setup checklist
# General Settings
Source: https://docs.aikeedo.com/website-basics/essentials
Configure website name, SEO metadata, keywords, and landing page settings in Aikeedo to optimize your platform for search engines and user experience.
Navigate to **Settings > General** in your Aikeedo admin panel to configure your platform's core website information and SEO settings.
## Website Information
### Website Name
The website name appears throughout your platform and represents your brand.
* Locate the "Name" field under the "Website" section
* Enter your brand name or platform title
* Example: "AI Wizard" or "AI Wizard Platform"
Choose a memorable name that clearly communicates your platform's purpose to users.
### Site Domain
Configure your website's domain for proper functionality.
* Enter your domain name in the "Site Domain" field
* **Important:** Include only domain, subdomain (if any) and port number (if any)
* **Do not include** protocol (http/https) or path
* Omit port number if it's 80 or 443
* Example: `demo.aikeedo.com` or `mysite.com:8080`
Incorrect domain configuration can cause authentication and payment gateway issues. Make sure to enter only the domain without http\:// or https\://.
### SSL Configuration
Enable SSL for secure connections and required features.
* Toggle "Is SSL Enabled?" to "Yes" if you have an SSL certificate installed
* SSL is required for various features like SSO and Payment Gateways
* It's highly recommended to enable SSL for production environments
Only enable SSL if you have a valid SSL certificate installed on your server. Enabling without a certificate will cause connection errors.
### Landing Page
Control the first page visitors see when they arrive at your site.
* Enable this toggle to display the default landing page
* When disabled, visitors are redirected to the login page
If you plan to publicly market your platform, keep the landing page enabled to showcase your services to potential users.
### Default App Page
Set the default page users see after logging in.
* Enter the path for your default app page (e.g., `/app`)
* This setting will be used as the default page for users when they login
* Admins will always be redirected to the admin dashboard regardless of this setting
Common values include `/app`, `/app/chat`, or `/app/video` depending on your platform's structure.
## SEO Optimization
Search Engine Optimization (SEO) is vital for improving your site's visibility in search results.
### Keywords
1. In the "SEO" section, locate the "Keywords" field.
2. Enter relevant keywords for your AI service, separated by commas.
3. Example: "AI assistant, machine learning, natural language processing, chatbot"
Choose keywords that accurately describe your service and that potential users might search for. Don't overstuff with keywords; focus on the most relevant ones.
### Description
1. Find the "Description" field in the SEO section.
2. Write a concise, compelling description of your AI service (typically 150-160 characters).
3. This description may appear in search engine results, so make it informative and engaging.
## Saving Changes
After configuring your general settings:
1. Review all changes for accuracy
2. Click the "Save changes" button at the bottom of the page
3. Wait for the confirmation message
Your general settings have been updated successfully.
## Related Guides
* [Landing Page Customization](/website-basics/landing-page) - Customize landing page theme
* [Branding](/website-basics/branding) - Customize logos and colors
* [Application Configuration](/setup/configuration) - Complete configuration checklist
* [Email Configuration](/email/mailer) - Set up email delivery
# Landing Page Customization
Source: https://docs.aikeedo.com/website-basics/landing-page
Customize your Aikeedo landing page including hero images, text content, and theme files while preserving changes through updates.
## Overview
The landing page is the first impression visitors get of your Aikeedo platform. This guide covers how to customize images, text, and theme files safely.
Changes made directly to the default theme will be overwritten during app updates. Always duplicate the theme before making customizations.
**Directory Note**: If you've replaced the default `public` directory with `public_html` (common in cPanel environments), replace `public` with `public_html` in all file paths throughout this guide.
## Landing Page Options
Aikeedo offers flexibility in how you manage your landing page:
Use Aikeedo's built-in landing page and customize it to match your brand. This option gives you full control while staying within the Aikeedo ecosystem.
**Best for:** Users who want to customize the existing design without external tools.
Install Aikeedo on a subdomain (`app.yourdomain.com`) and disable the default landing page. Create your main landing page using external services like Framer, WordPress, Webflow, or Squarespace, then point your main domain (`yourdomain.com`) to your third-party landing page.
**How it works:** Main domain shows your custom landing page, while the subdomain handles Aikeedo functionality (authorized users go to dashboard, unauthorized visitors see login page).
**Best for:** Users who want complete design freedom with specialized landing page builders.
Set the **Detailed pricing page URL** in [Billing settings](/billing/overview#detailed-pricing-page-url) so the in-app Plans page button links to your external pricing page instead of the default `/#pricing` anchor.
Browse and install pre-built themes from our [Marketplace](https://aikeedo.com/marketplace/). These professionally designed themes are ready to use and can be customized to match your brand.
**Best for:** Users who want professional designs without starting from scratch.
Create custom themes tailored to your specific needs. You can build themes yourself or have our team create them for you.
**For developers:**
* Start with our minimal [Theme Starter Kit](https://github.com/heyaikeedo/themes-starter) - the same foundation we use internally
* Follow our comprehensive [Theme Development Guide](/development/themes/development-guide) for detailed instructions
**For custom development:**
* Contact [sales@aikeedo.com](mailto:sales@aikeedo.com) to have our team create custom themes for you
**Best for:** Users who need unique designs or have specific branding requirements.
## Customize the Default Landing Page
To customize Aikeedo's default landing page, you'll need to duplicate the theme first to protect your changes from being overwritten during updates.
Copy the default theme to a new location:
```bash theme={null}
# From
/extra/extensions/heyaikeedo/default
# To
/extra/extensions/yourorganization/themename
```
Replace `yourorganization` and `themename` with your preferred names.
In your duplicated theme directory, update the `composer.json` file to reflect the new theme name:
```json theme={null}
{
"name": "yourorganization/themename"
}
```
The name must match the new directory structure.
Copy the theme assets to match your new theme:
```bash theme={null}
# From
/public/e/heyaikeedo/default
# To
/public/e/yourorganization/themename
```
If using `public_html`, replace `public` with `public_html` in the paths above.
1. Navigate to the admin panel
2. Go to **Themes** page
3. Find your new theme in the list
4. Click **Activate** to enable it
For development, you need to enable debug mode and disable app cache:
1. Navigate to the **Status** page in your admin panel
2. **Enable Debug Mode**: This allows you to see changes in real-time during development
3. **Disable App Cache**: Disable all caching options on the same page
Debug mode and disabled cache should never be enabled in production as they significantly impact performance.
Edit files in your custom theme directory:
* **Modify TWIG templates**: Aikeedo uses TWIG for HTML views (`.twig` files)
* Update CSS styles
* Add custom JavaScript
* Replace images
TWIG templates are located in the `views` directory of your theme. Look for `.twig` files to modify the HTML structure.
Once you've completed and tested your changes:
1. Navigate to the **Status** page in your admin panel
2. **Disable Debug Mode** for optimal performance
3. **Re-enable App Cache** for production
If you have any caching enabled, clear the application cache from the admin panel's Status page after making changes.
Your customizations are now protected from being overwritten during updates.
## Theme File Locations
Understanding where theme files are located helps you customize effectively:
### Asset Files (CSS, JS, Images)
```
/public/e/heyaikeedo/default/
```
Contains all frontend assets including:
* Stylesheets (CSS)
* JavaScript files
* Images and icons
### HTML View Files
```
/extra/extensions/heyaikeedo/default/
```
Contains template files that generate the HTML structure.
## Quick Customizations
### Updating the Hero Image
The hero image is located at:
```
/public/e/heyaikeedo/default/assets/preview.webp
```
To update the hero image:
1. Replace the existing `preview.webp` file with your new image
2. Keep the same filename (`preview.webp`)
3. Clear your browser cache to see the changes
For best results, use WebP format for optimal performance and loading speed.
### Updating Text Content
Text content should be updated through localization files for proper multilingual support.
Localization files are located at:
```
/extra/extensions/heyaikeedo/default/locale
```
See the [Localization guide](/advanced/localization) for detailed instructions on managing text translations.
## Advanced Theme Development
For comprehensive theme customization and development:
### Default Theme Source Code
Access the default theme source code and documentation:
View the complete source code, structure, and implementation of the default landing page theme
### Theme Development Resources
For in-depth information on building custom themes:
Learn about theme architecture, available objects, and best practices for theme development
Minimal foundation for building custom themes from scratch - the same base we use internally
## Best Practices
Follow these guidelines for successful landing page customization:
1. **Always Duplicate**: Never edit the default theme directly
2. **Version Control**: Keep your custom theme under version control (Git)
3. **Test Thoroughly**: Test changes across different browsers and devices
4. **Optimize Assets**: Compress images and minify CSS/JS for better performance
5. **Document Changes**: Keep notes on customizations for future reference
6. **Regular Backups**: Backup your custom theme before major changes
If you only need to change colors and logos, consider using the [Branding settings](/website-basics/branding) instead of creating a custom theme.
## Troubleshooting
Common issues and solutions:
* Clear your browser cache (hard refresh: Ctrl+Shift+R or Cmd+Shift+R)
* Clear the application cache from the admin panel
* Verify you're editing the active theme, not the default theme
* Verify the `composer.json` file has the correct name format
* Ensure the directory structure matches the name in `composer.json`
* Check file permissions on the theme directories
* Verify asset files are in the correct `/public/e/` directory
* Clear browser cache and application cache
* Check browser console for 404 errors on asset files
## Related Guides
* [Branding](/website-basics/branding) - Configure logos and colors
* [General Settings](/website-basics/essentials) - Set site name and SEO
* [Localization](/advanced/localization) - Manage translations
* [Theme Development Guide](/development/themes/development-guide) - Advanced theme development
Remember to disable debug mode on production sites to ensure optimal performance and security.
# Progressive Web App (PWA)
Source: https://docs.aikeedo.com/website-basics/pwa
Configure Aikeedo as a Progressive Web App (PWA) with custom icons, theme colors, and offline capabilities for an app-like user experience.
Progressive Web Apps (PWAs) combine the best of web and mobile applications, offering fast, reliable, and engaging experiences. This guide covers PWA configuration for your Aikeedo platform.
## What is a PWA?
A Progressive Web App is a type of application software delivered through the web, built using common web technologies including HTML, CSS, and JavaScript. PWAs are designed to work on any platform that uses a standards-compliant browser, including both desktop and mobile devices.
PWAs can offer features like offline functionality, push notifications, and home screen installation, providing a native app-like experience to your users.
## Configuring Your PWA
To set up your Aikeedo application as a PWA, follow these steps:
### 1. Enable PWA Functionality
First, ensure that the PWA feature is enabled for your application:
1. Navigate to the PWA settings page in your Aikeedo admin panel.
2. Locate the "Status" toggle switch.
3. Ensure it is set to "Enabled" (the switch should be green).
### 2. Basic Configuration
Fill in the following fields to customize your PWA:
* **Name**: Enter the full name of your application (e.g., "Aikeedo").
* **Short Name**: Provide a shorter version of your app name, which will be used when space is limited (e.g., on device home screens).
* **Display**: Choose how you want your app to appear when launched. The "Minimal" option provides a streamlined user interface.
* **Description**: Write a brief description of your application (e.g., "All-in-one AI tool").
### 3. Visual Customization
Customize the look of your PWA with these settings:
* **Theme Color**: Enter a hexadecimal color code (e.g., "#ffffff") to set the primary theme color of your PWA. This color may be used in the browser's address bar or other UI elements.
* **Background Color**: Specify a hexadecimal color code (e.g., "#3F4246") for the background color of the splash screen that appears when your PWA is launched.
### 4. App Icon
The app icon is crucial for brand recognition and will be displayed on the user's home screen or app launcher:
1. Click the "Browse files" button next to "App icon".
2. Upload an image that meets the following criteria:
* Recommended size: 512x512 pixels
* Supported formats: PNG, SVG, or WEBP
* Ensure the icon is visually appealing and recognizable at smaller sizes
### 5. Maskable Icon
Maskable icons adapt to different device requirements by allowing the icon to fill the entire shape provided by the device's operating system:
1. Toggle the "Maskable icon" switch to "Enabled" if you want your icon to be maskable.
2. Ensure your uploaded icon has some padding around the main content to accommodate different mask shapes.
### 6. Save Your Changes
After configuring all the settings, click the "Save changes" button at the bottom of the page to apply your PWA configuration.
## Testing Your PWA
After configuring PWA settings, test the installation:
1. Visit your site on a mobile device or Chrome on desktop
2. Look for the "Install" or "Add to Home Screen" prompt
3. Install the PWA and verify the icon, name, and colors appear correctly
## Related Guides
* [Landing Page Customization](/website-basics/landing-page) - Customize landing page theme
* [Branding](/website-basics/branding) - Customize logos and colors
* [General Settings](/website-basics/essentials) - Configure site name and SEO
* [Application Configuration](/setup/configuration) - Complete setup checklist
PWA features enhance user engagement by providing an app-like experience directly from the browser, increasing accessibility across all devices.