Hi,
I’m currently querying
import { contacts } from “wix-crm-backend”;
I have an array of returned items but I’m struggling to filter this to only “SUBSCRIBED” contacts from the field
emailSubscriptions.subscriptionStatus
My code is below and working apart from returning only the id
Backend Code:
import { contacts } from "wix-crm-backend";
export async function getSubscribedContacts(options) {
try {
const queryResults = await contacts.queryContacts().find(options);
console.log("Raw Contacts Data: ", JSON.stringify(queryResults.items, null, 2));
const allContacts = queryResults.items.map(contact => {
console.log("Full Contact Object: ", JSON.stringify(contact, null, 2));
const subscriptionStatus = contact.info.extendedFields.emailSubscriptions?.subscriptionStatus;
return {
id: contact._id,
subscriptionStatus: subscriptionStatus,
emailSubscriptions: contact.info.extendedFields.emailSubscriptions?.subscriptionStatus
};
});
console.log("All Contacts Subscription Status: ", allContacts);
return allContacts;
} catch (error) {
console.error("Error fetching contacts:", error);
throw new Error("Failed to query contacts.");
}
}
Frontend code:
import { getSubscribedContacts } from "backend/contacts.jsw";
$w.onReady(async function () {
const options = {
suppressAuth: true
};
try {
const results = await getSubscribedContacts(options);
console.log("Subscribed Contacts: ", results);
} catch (error) {
console.error("Error fetching subscribed contacts:", error);
}
});
So I have an array of contacts but I’m struggling to achieve only subscribed. I can sort this by using a tag but want to access the subscriptionStatus “SUBSCRIBED” to show only this match.
I only get the _id returned from the backend code without the other two fields
return {
id: contact._id,
subscriptionStatus: subscriptionStatus,
emailSubscriptions: contact.info.extendedFields.emailSubscriptions?.subscriptionStatus
};
Is this possible? Thanks for any help provided