Faits :
A.
A._ Sàrl, société avec siège à U._ qui poursuit le but d'exploiter une entreprise de location et de pose d'échafaudages, était soumise à la Convention collective de travail pour les échafaudeurs suisse 2012-2015 (ci-après : la CCT).
L'art. 4 al. 1 de la CCT prévoit que les parties contractantes veillent à l'application de la convention dans l'esprit de l'art. 357b CO et, à cette fin, qu'elles instituent une Commission professionnelle paritaire (ci-après : X._) - sous la forme d'une association (art. 25 CCT) - et lui confient toutes les compétences de la communauté contractante.
Les statuts de l'association X._, signés le 1er avril 1996, ont été remplacés le 1er octobre 2012. Le règlement de l'association, daté du 14 décembre 2011, est entré en vigueur le 1er janvier 2012.
X._ a mandaté l'entreprise individuelle " B._ " (ci-après : l'expert), qui a pour but les médiations et les expertises dans le domaine de la construction, afin qu'elle procède au contrôle de A._ Sàrl (ci-après : A._).
Le 5 novembre 2015, l'expert a effectué le contrôle, par l'intermédiaire de sa collaboratrice.
Le 3 décembre 2015, l'expert a communiqué son rapport à X._. Le document précise que, par courriel du 30 novembre 2015, la liste du personnel avec qualification de A._ a été adressée à celle-ci pour contre-signature ou éventuelles corrections et que, jusqu'au 3 décembre 2015, A._ n'a retourné aucun procès-verbal signé ni liste de personnel signée. L'expert a ajouté que, sans correction dans les cinq jours de travail à venir, les documents seraient considérés comme acceptés.
Dans son rapport, l'expert a fait état de plusieurs violations - durant la période sous contrôle comprise entre le 1er octobre 2012 et le 30 septembre 2015 - de dispositions de la CCT déclarées de force obligatoire. Une liste du personnel et des salaires est annexée au rapport, ainsi que des fiches individuelles, établies par l'expert, calculant les salaires de certains employés dus à titre rétroactif.
Le 17 décembre 2015, A._ a fait part de ses remarques à l'expert.
Par décision adressée le 8 février 2016 à A._, X._ a indiqué avoir traité le rapport daté du 3 décembre 2015. Elle a considéré que celui-ci, complet et pertinent, faisait partie intégrante de la décision. Elle a retenu la violation de neuf articles de la CCT et expliqué les raisons pour lesquelles les objections formulées par A._ dans son dernier courrier avaient été écartées.
X._ a retiré avec effet immédiat la " conformité CCT " à A._ et lui a infligé une peine conventionnelle d'un montant de 16'700 fr., comprenant six postes (absence d'un registre de contrôle du temps de travail, rémunération à l'heure, pas de contrôle des sous-traitants, etc.), auxquels elle a ajouté les frais effectifs générés par le contrôle de la comptabilité des salaires, ainsi que les frais de la procédure, soit un total de 20'848 fr.90, à verser d'ici au 31 mars 2016. Elle a signalé que si A._ souhaitait contester la décision, elle devrait agir par la voie judiciaire ordinaire.
B.
Le 22 juin 2017, X._ a ouvert action contre A._ auprès du Tribunal civil de l'arrondissement de l'Est vaudois, concluant à ce que la défenderesse soit contrainte de lui verser la somme de 20'848 fr.90, intérêts en sus, et à ce que les " coûts et les conséquences en matière d'indemnisation " soient mis à la charge de celle-ci.
La défenderesse a conclu au rejet des conclusions de la demande.
Par jugement du 9 juillet 2018, la Présidente du Tribunal a admis la demande et a condamné la défenderesse à verser à la demanderesse la somme de 20'848 fr.90, intérêts en sus.
Par arrêt du 14 mars 2019, la Cour d'appel civile du Tribunal cantonal vaudois a rejeté le recours formé par la défenderesse et confirmé le jugement entrepris.
C.
Contre cet arrêt cantonal, la défenderesse exerce un recours en matière civile et un recours constitutionnel subsidiaire au Tribunal fédéral. Dans le premier recours, elle conclut principalement à la réforme de l'arrêt attaqué en ce sens que la demande déposée le 22 juin 2017 soit déclarée irrecevable, subsidiairement, qu'elle soit rejetée et, plus subsidiairement, à ce que l'arrêt entrepris soit annulé et la cause renvoyée à l'autorité cantonale pour nouvelle décision. La recourante invoque une violation des art. 55 al. 1, 168 et 244 CPC, ainsi que de l'art. 8 CC et de l'art. 9 Cst. Dans son second recours (constitutionnel), la défenderesse conclut principalement à la réforme de l'arrêt cantonal en ce sens que la demande soit rejetée et, subsidiairement, à son annulation et au renvoi de la cause à l'autorité cantonale. Elle reproche à la cour cantonale d'avoir violé les art. 9 et 30 Cst.
L'intimée n'a pas été invitée à déposer des observations.

Considérant en droit :
1.
1.1. Déposé en temps utile (art. 100 al. 1 LTF en lien avec l'art. 46 al. 1 let. a LTF) par la défenderesse qui a succombé dans ses conclusions libératoires (art. 76 al. 1 LTF), le présent recours est dirigé contre un arrêt final (art. 90 LTF) rendu en matière civile (art. 72 al. 1 LTF) par un tribunal supérieur statuant sur recours (art. 75 LTF; sur la compétence de la juridiction ordinaire, cf. aussi art. 1 al. 3 LECCT; RS 221.215.311).
1.2. S'agissant d'une affaire pécuniaire, le recours en matière civile n'est recevable que si la valeur litigieuse s'élève au moins à 30'000 fr. (art. 74 al. 1 let. b LTF; <ref-ruling> consid. 1.3 p. 394 et l'arrêt cité) ou, à défaut, si la contestation soulève une question juridique de principe (art. 74 al. 2 let. a LTF). Il convient donc d'examiner si l'une ou l'autre de ces exigences est réalisée en l'espèce.
Les conclusions prises devant l'autorité précédente n'atteignent pas le seuil minimal de 30'000 fr. Le recours en matière civile n'est donc pas recevable au regard de l'art. 74 al. 1 let. b LTF. La défenderesse fait cependant valoir que la contestation poserait deux questions juridiques de principe au sens de l'art. 74 al. 2 let. a LTF.
2.
2.1. La jurisprudence n'admet que restrictivement l'existence d'une question juridique de principe, qui permet de déroger à l'exigence de la valeur litigieuse. Pour qu'une telle condition soit réalisée, il ne suffit pas que la question juridique n'ait jamais été tranchée par le Tribunal fédéral. Encore faut-il que la résolution du cas d'espèce implique de résoudre une question juridique donnant lieu à une incertitude caractérisée, appelant de manière pressante un éclaircissement de la part du Tribunal fédéral en tant qu'autorité judiciaire suprême chargée de dégager une interprétation uniforme du droit fédéral (<ref-ruling> consid. 1.4.1; <ref-ruling> consid. 1.2 p. 161 et les arrêts cités). Si le point soulevé ne concerne que l'application de principes jurisprudentiels à un cas particulier, il ne saurait être qualifié de question juridique de principe (<ref-ruling> consid. 1.4.1 p. 119).
La partie recourante doit démontrer, sous peine d'irrecevabilité, que la décision attaquée soulève une telle question, à moins que celle-ci s'impose de façon évidente (art. 42 al. 2, 2e phr., et art. 108 al. 1 let. b LTF; <ref-ruling> consid. 1.2 p. 361; <ref-ruling> consid. 1.3).
2.2.
2.2.1. La première question juridique - prétendument de principe - concernerait la nature et la portée d'un rapport établi à la demande de X._ au terme d'une procédure instaurée par la Convention collective de travail pour les échafaudeurs suisse 2012 - 2015 étendue par le Conseil fédéral. De l'avis de la recourante, le Tribunal fédéral n'a jamais indiqué si ce rapport est un moyen de preuve au sens de l'art. 168 CPC ou une simple allégation de partie.
En dépit de l'opinion différente de la recourante, cette question ne fait pas l'objet d'incertitudes et ne requiert pas des éclaircissements de la part du Tribunal fédéral.
On observera d'emblée que X._ est une association de droit privé (art. 60 ss CC) (cf. supra let. A 2e par.; <ref-ruling> consid. 4.2 p. 545). Se pose dès lors la question de savoir s'il appartenait à la défenderesse de contester la décision rendue par cette association conformément à l'art. 75 CC. La cour précédente ne s'est pas prononcée sur ce point et les constatations cantonales ne donnent que des informations partielles sur l'organisation et le fonctionnement de l'association X._. La défenderesse semble toutefois en être un membre indirect et, partant, un " sociétaire " qui pouvait (et devait) intenter, dans le délai d'un mois prévu par l'art. 75 CC, l'action en découlant pour obtenir l'examen de la décision litigieuse par le juge, qui disposait d'un pouvoir d'examen libre (cf. arrêt 4A_314/2017 du 28 mai 2018 consid. 2.3.2.2; sur le pouvoir d'examen, cf. <ref-ruling> consid. 4.4).
Il n'est toutefois pas nécessaire d'examiner cette question de manière plus approfondie puisque, même si l'on fait abstraction de la procédure qui vient d'être évoquée (fondée sur l'art. 75 CC), la question posée par la recourante appelle une réponse qui découle exclusivement de l'application des principes jurisprudentiels connus (fardeau de l'allégation, droit à la preuve, appréciation des preuves). En effet, même si l'association est légitimée à prononcer des sanctions en application de la CCT, elle garde son caractère de personne privée. Le fait que la CCT 2012-2015 a été étendue par le Conseil fédéral n'y change rien car la LECCT ne lui confère pas de pouvoirs para-étatiques (MEIER/PÄRLI, Contrôle des conditions de travail par les partenaires sociaux, 2018, n. 489 p. 168 et l'auteur cité). C'est donc en qualité de personne privée que l'association a formé une action en paiement devant les juridictions civiles. Ces dernières disposent, dans cette procédure également, d'un pouvoir d'examen libre pour examiner les sanctions litigieuses prononcées par l'association, dont celle-ci requiert l'exécution par la voie civile. Il était donc clair, pour les juges saisis de l'action en paiement, que le rapport de l'expert produit par l'association devait être qualifié, à la lumière de la jurisprudence fédérale, d'expertise privée et que le contenu du rapport consistait en de simples allégations de partie (<ref-ruling> consid. 2 p. 433 ss), ce que la recourante reconnaît d'ailleurs à plusieurs reprises.
2.2.2. La seconde question juridique de principe " permettra[it] de préciser la formulation et le degré de précision des conclusions prises " et, en particulier de savoir ce qu'il advient lorsque " le demandeur ne cite pas nommément le défendeur dans ses conclusions ".
La manière de formuler les conclusions en procédure simplifiée a déjà fait l'objet de nombreux arrêts publiés (cf. <ref-ruling> consid. 5.3.1; <ref-ruling> consid. 4.3) et on ne voit pas en quoi cette jurisprudence mériterait, en lien avec le cas d'espèce, des éclaircissements de la part du Tribunal fédéral. La question posée par la recourante ne concerne que l'application de principes jurisprudentiels à un cas particulier.
2.3. Le recours en matière civile est dès lors irrecevable. Partant, la voie du recours constitutionnel subsidiaire est ouverte (cf. art. 113 LTF).
A l'appui de ce recours, la recourante se plaint de la violation de l'interdiction de l'arbitraire (art. 9 Cst.) et de la transgression des garanties de procédure judiciaire (art. 30 Cst.).
2.3.1. Dans sa première critique, la recourante se plaint de ce que les instances cantonales se sont comportées " comme des autorités d'enregistrement ", se bornant à faire leur les conclusions prises par l'expert dans son rapport. Elle leur reproche une grave violation du principe de l'allégation, du fardeau de la preuve, du droit à la preuve et de l'appréciation des preuves. Elle ne fournit toutefois pas le début d'une motivation permettant de comprendre en quoi l'autorité précédente aurait appliqué arbitrairement ces différents principes (ou droits). Il n'y a dès lors pas lieu d'entrer en matière sur ce moyen.
La recourante émet diverses critiques générales (notamment s'agissant de la compétence, du mandat, de l'étendue et de la validité du rapport d'expertise, ainsi que sur de prétendues allégations non prouvées), sans toutefois se référer à la partie correspondante de la motivation cantonale. Il résulte de l'arrêt attaqué que les juges ont pris position (au moins en partie) sur ces critiques, déjà soulevées en appel par la défenderesse, et il incombait à celle-ci de partir des éléments déterminants de l'arrêt cantonal pour en démontrer l'arbitraire par une motivation circonstanciée, ce qu'elle n'a pas fait. Le moyen est irrecevable.
S'agissant de la peine conventionnelle (montant retenu, critères de calcul pris en compte), les magistrats précédents ont considéré que la défenderesse (alors appelante) était " forclose pour invoquer ce grief au stade de l'appel seulement ". La recourante, qui formule divers reproches à l'endroit de la cour cantonale s'agissant du montant de la peine conventionnelle, n'aborde toutefois pas la question de la forclusion de sorte que la Cour de céans ne saurait y revenir.
Le renvoi de la défenderesse à la partie de son recours en matière civile ayant traité de la peine conventionnelle - à première vue admissible puisque la recourante y invoque l'art. 9 Cst. (cf. <ref-ruling> consid. 1.2 p. 382) - appelle le même commentaire.
C'est en vain que la recourante revient sur les violations de la CCT consacrées par la cour cantonale, sa critique s'appuyant sur la prémisse - écartée plus haut (cf. supra 1er par.) - selon laquelle les instances précédentes auraient agi comme des " autorités d'enregistrement ".
2.3.2. Dans son second grief, la recourante reproche à la cour cantonale de n'avoir pas respecté les garanties de procédure judiciaire, selon lesquelles " toute personne dont la cause doit être jugée dans une procédure judiciaire a droit à ce que sa cause soit portée devant un tribunal établi par la loi, compétent, indépendant et impartial (...) (art. 30 Cst.).
En substance, elle fait grief à la cour cantonale d'avoir repris le contenu et les conclusions de l'expertise privée " sans exerce[r] aucun pouvoir d'examen ". Des brèves explications qu'elle fournit, on ne comprend toutefois pas en quoi l'art. 30 Cst. aurait été violé par l'autorité cantonale. On ne saurait à tout le moins pas en conclure que l'autorité cantonale aurait failli à ses devoirs d'indépendance et d'impartialité.
Sous couvert d'une transgression de l'art. 30 Cst., la recourante semble en réalité revenir sur son premier grief visant l'appréciation arbitraire des preuves et la violation du droit à la preuve. Il a déjà été fait justice à ces critiques (cf. supra consid. 2.3.1).
3.
Il résulte des considérations qui précèdent que le recours en matière civile est irrecevable et que le recours constitutionnel doit être rejeté dans la mesure où il est recevable. Les frais sont mis à la charge de la recourante, qui succombe (art. 66 al. 1 LTF). Il n'est pas alloué de dépens à l'intimée, qui n'a pas été invitée à déposer une réponse.

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours en matière civile est irrecevable.
2.
Le recours constitutionnel subsidiaire est rejeté dans la mesure où il est recevable.
3.
Les frais judiciaires, arrêtés à 2'000 fr., sont mis à la charge de la recourante.
4.
Le présent arrêt est communiqué aux parties et au Tribunal cantonal du canton de Vaud, Cour d'appel civile.
Lausanne, le 9 décembre 2019
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente : Kiss
Le Greffier : Piaget