Jump to content

SaleBot - WhatsApp And Telegram Marketing SaaS - ChatBot & Bulk Sender v3.2.0

(4 reviews)

1 Screenshot

Introducing SaleBot- WhatsApp and Telegram Marketing SaaS script. Automate your marketing campaign with the Leading SaleBot Script- SaaS-ready WhatsApp Cloud API-based bulk sender, AI assistant, and AI support system. Skyrocket your sales with SaleBot.

Our team of experts has carefully crafted SaleBot to meet all your sales needs. From creating personalized messages to scheduling campaigns, our software does it all. Bulk WhatsApp marketing campaigns ensure high read rates of 95%-98% for your message to reach your target audience. But what sets SaleBot apart from the rest? As we use the official Meta Cloud API, Meta won’t block your campaign account.

Expand your marketing plans with Telegram marketing, a platform gaining popularity by the day. SaleBot makes it simple to launch successful Telegram campaigns. You can easily send unlimited messages to your audience; up to 80% of them will open and read your content. This high open rate guarantees that your marketing is effective and reaches potential customers, not wasted.

What's New in Version v3.2.0

See changelog

Released

- New Added:
- Added support for upcoming Messenger & Instagram addon.

- Fixed:
- Language fix.
- Fix few's minor bug

User Feedback

Recommended Comments

zuckszinho12

Members

This version is not Nulled, It is asking for a key, what do I put here please help me

6784D91C-A35B-4892-8D1B-6505AFA9344A.thumb.png.f40f2c6bcb68baf7e37696fa47ef9f65.png

Marcos Espinoza

Members

app/Http/Controllers/InstallController.php:

Remp All:

<?php

namespace App\Http\Controllers;

use App\Http\Requests\InstallRequest;

use App\Models\Setting;

use App\Models\User;

use Brian2694\Toastr\Facades\Toastr;

use Illuminate\Http\JsonResponse;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Artisan;

use Illuminate\Support\Facades\DB;

use Illuminate\Support\Facades\File;

use Illuminate\Support\Facades\URL;

use ZipArchive;

class InstallController extends Controller

{

public function index()

{

try {

DB::connection()->getPdo();

} catch (\Exception $e) {

return view('install.index');

}

if (config('app.app_installed')) {

return redirect('/');

}

return view('install.index');

}

public function getInstall(InstallRequest $request): JsonResponse

{

ini_set('max_execution_time', 900); //900 seconds

try {

$host = $request->host;

$db_user = $request->db_user;

$db_name = $request->db_name;

$db_password = $request->db_password;

try {

$mysqli = @new \mysqli($host, $db_user, $db_password, $db_name);

} catch (\Exception $e) {

return response()->json([

'error' => __('Please input valid database information.'),

]);

}

if (mysqli_connect_errno()) {

return response()->json([

'error' => __('Please input valid database information.'),

]);

}

$mysqli->close();

$data['DB_HOST'] = $host;

$data['DB_DATABASE'] = $db_name;

$data['DB_USERNAME'] = $db_user;

$data['DB_PASSWORD'] = $db_password;

// Automatically approve installation if database connection is successful

return response()->json([

'success' => 'Database Connection Verified Successfully',

]);

} catch (\Exception $e) {

return response()->json([

'error' => $e->getMessage(),

]);

}

}

public function final(InstallRequest $request): JsonResponse

{

try {

$zip_file = base_path('public/install/installer.zip');

if (file_exists($zip_file)) {

$zip = new ZipArchive;

if ($zip->open($zip_file) === true) {

$zip->extractTo(base_path('/'));

$zip->close();

} else {

return response()->json([

'type' => 'error',

'error' => 'Installation files Not Found, Please Try Again',

'route' => route('install.initialize'),

]);

}

unlink($zip_file);

}

$config_file = base_path('config.json');

if (file_exists($config_file)) {

$config = json_decode(file_get_contents($config_file), true);

} else {

return response()->json([

'type' => 'error',

'error' => 'Config File Not Found, Please Try Again',

'route' => route('install.initialize'),

]);

}

Artisan::call('migrate:fresh', ['--force' => true]);

// Generate JWT secret key

Artisan::call('jwt:secret');

$this->dataInserts($config, $request);

$this->envUpdates();

$this->demoDataImport();

return response()->json([

'type' => 'success',

'success' => 'Installation was Successful',

'route' => url('/'),

]);

} catch (\Exception $e) {

// dd($e->getMessage());

return response()->json([

'error' => $e->getMessage(),

]);

}

}

protected function dataInserts($config, $request): void

{

$user = User::find(1);

$user->email = $request->email;

$user->first_name = $request->first_name;

$user->last_name = $request->last_name;

$user->password = bcrypt($request->password);

$user->save();

$code = Setting::where('title', 'activation_code')->first();

if ($code) {

$code->update([

'value' => session()->get('activation_code'),

]);

} else {

Setting::create([

'title' => 'activation_code',

'value' => session()->get('activation_code'),

]);

}

if (isAppMode()) {

$version = $config['app_version'];

$version_code = $config['app_version_code'];

} else {

$version = $config['web_version'];

$version_code = $config['web_version_code'];

}

$code = Setting::where('title', 'version_code')->first();

$version_no = Setting::where('title', 'current_version')->first();

if ($code) {

$code->update([

'value' => $version_code,

]);

} else {

Setting::create([

'title' => 'version_code',

'value' => $version_code,

]);

}

if ($version_no) {

$version_no->update([

'value' => $version,

]);

} else {

Setting::create([

'title' => 'current_version',

'value' => $version,

]);

}

if (arrayCheck('removed_directories', $config)) {

foreach ($config['removed_directories'] as $directory) {

File::deleteDirectory(base_path($directory));

}

}

}

protected function envUpdates(): void

{

envWrite('APP_URL', URL::to('/'));

envWrite('APP_INSTALLED', true);

Artisan::call('key:generate');

Artisan::call('all:clear');

}

protected function demoDataImport(): void

{

try {

DB::unprepared(file_get_contents(base_path('public/sql/demo_data.sql')));

} catch (\Exception $e) {

// dd($e->getMessage());

}

}

public function releaseForm()

{

// Debug mode enable check

if (!config('app.debug')) {

abort(404);

}

return view('install.release');

}

public function createRelease(Request $request)

{

$request->validate([

'latest_commit' => 'required',

'old_commit' => 'required',

'prefix' => 'required',

'version' => 'required',

]);

try {

$latest_commit = $request->latest_commit;

$old_commit = $request->old_commit;

$name = $request->prefix;

$version = $request->version;

$gitDiffCommand = "git diff --name-only $latest_commit $old_commit";

$changedFiles = shell_exec($gitDiffCommand);

file_put_contents(base_path('release_creator.txt'), $changedFiles);

$file = base_path('release_creator.txt');

$lines = file($file);

$data = [];

dd(1);

foreach ($lines as $line) {

$data[] = $line;

}

$data = array_filter($data);

$data = array_map('trim', $data);

$data = array_filter(array_unique(array_values($data)));

$zip = new ZipArchive;

$release_name = $name.'_release_v'.$version;

$zip_file = base_path("$release_name.zip");

if ($zip->open($zip_file, ZipArchive::CREATE) === true) {

foreach ($data as $file) {

if (file_exists(base_path($file))) {

$zip->addFile(base_path($file), $file);

}

}

$zip->close();

}

$script_url = str_replace('admin/update-system', '', (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https' : 'http')."://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");

$fields = [

'domain' => urlencode($_SERVER['SERVER_NAME']),

'version' => $request->latest_version,

'item_id' => "51330626",

'purchase_code' => urlencode(setting('activation_code')),

'url' => urlencode($script_url),

'is_beta' => config('app.dev_mode') ? 1 : 0,

];

$_request = curlRequest('https://desk.spagreen.net/verify-installation-v2', $fields);

$zip_file = $_request->release_zip_link;

$file_path = base_path('updater.zip');

file_put_contents($file_path, file_get_contents($zip_file));

File::delete([base_path('release_creator.txt'), $file_path]);

Toastr::success('Release Created Successfully');

return back();

} catch (\Exception $e) {

// dd($e);

}

}

}

Iftihor

Members

19 часов назад, xxnascente сказал:

please update

how did you activate, it's asking me for activation code, can you help me?

xxnascente

Members

6 minutes ago, Iftihor said:

how did you activate, it's asking me for activation code, can you help me?

After Setting Up and Importing SQL File

Just Go to ENV and Change the following.

APP_URL=https://yourdomain.com

DB_PORT=3306
DB_DATABASE=your_db_name
DB_USERNAME=your_username
DB_PASSWORD=your_password

eratsu

Members

guys, to activate is very simple, just go in the app/Helpers/helper.php

go to the line 74 and change the line from this

'domain'          => 'urlencode($_SERVER['SERVER_NAME'])',


to this:

'domain'          => 'localhost',


and continue the installation.

REP+ please

Robert Santos

Members

(edited)

Where is the .sql file for installation?

Can someone send it to me?

VERSION 3.2.0 PLEASE

Edited by Robert Santos

Ige Micheal

Members

pls if you have the addon pls help me with it

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Add a comment...

Other files from Mahmoud